如何仅使用wp_NAV_MENU获取主菜单

时间:2014-05-05 作者:Mr.Happy

我已经创建了一个菜单和一些子菜单,但我不想显示模板中的任何子菜单。

我的菜单代码:

<?php wp_nav_menu( array(\'menu\' => \'header-uk\', \'menu_id\' => \'nav\', \'menu_class\' => \'sitemap\', \'fallback_cb\' => false) ); ?>
我的菜单截图:

enter image description here

我只想在模板中显示此菜单:

Awards
Sagres Town
Getting Here
Sister Hotels
Other
Work for Martinhal
Disclaimer
Site Map

3 个回复
SO网友:WPExplorer

可以像这样使用深度参数:

wp_nav_menu( array(
    \'menu\'        => \'header-uk\',
    \'menu_id\'     => \'nav\',
    \'menu_class\'  => \'sitemap\',
    \'fallback_cb\' => false,
    \'depth\'       => 1,
) );
或者,如果您想抓取所有项目来创建自己的循环/输出,您也可以这样做。示例:

if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ \'header-uk\' ] ) ) {

    $menu = wp_get_nav_menu_object( $locations[ \'header-uk\' ] );

    if ( ! empty( $menu ) ) {

        $menu_items = wp_get_nav_menu_items( $menu->term_id );

            if ( $menu_items ) {

                foreach ( $menu_items as $key => $menu_item ) {

                    if ( $menu_item->menu_item_parent == 0 ) {

                        echo \'<a href="\' . esc_url( $menu_item->url ) . \'">\' . $menu_item->title . \'</a>\';

                    }

                }

            }

    }

}
该键位于menu\\u item\\u parent check(菜单项父项检查)中,确保某个项在回显之前不是子项。

SO网友:Mayeenul Islam

这是一个CSS技巧,我想与WordPress无关。顺便说一句,你可以这样做:

ul.sitemap{
   list-style-type: none;
   margin: 0;
   padding: 0;
}

ul.sitemap li{
   margin: 0;
   padding: 0;
}
正如你所宣布的\'menu_class\' => \'sitemap\' 这个<ul> 将获得一个课程.sitemap 这就是为什么我们将目标对准那个类来放置CSS。

SO网友:Byron

您需要设置depth parameterwp_nav_menu 参数

结束