是否可以在主菜单上显示一些有限的菜单列表?

问题描述 投票:0回答:2

我有一个主菜单,代码是

<nav id="site-navigation" class="main-navigation float-right">
 <?php wp_nav_menu( array( 'theme_location' => 'menu-1','menu_id'=> 'primary-menu') );?>
 </nav>

现在我在左侧边栏中使用相同的菜单

<nav id="left-side-menu" class="main-navigation">
     <?php wp_nav_menu( array( 'theme_location' => 'menu-1', 'menu_id' => 'left-primary-menu',) );?>        
 </nav>

我共有15个菜单列表,但我必须在primary-menu上显示8,所有菜单列表将显示在left-primary-menu上。

因此可以在主菜单上显示一些有限的菜单列表吗?

wordpress menu
2个回答
0
投票

请尝试使用此功能

//Used This Function for Register Menus
function twentytwenty_menus() {
    $locations = array(
        'primary'  => __( 'Desktop Horizontal Menu', 'twentytwenty' ),
        'leftsidebar'   => __( 'Slidebar Menu', 'twentytwenty' ),   
    );
    register_nav_menus( $locations );
}
add_action( 'init', 'twentytwenty_menus' );


//Used This Function for set Limit of Menu Items
add_filter( 'wp_nav_menu_objects', 'mytheme_menufilter', 10, 2 );
function mytheme_menufilter($items, $args) {
    // want our MAINMENU to have MAX of 7 items
    if ( $args->theme_location == 'primary' ) {
        $toplinks = 0;
        foreach ( $items as $k => $v ) {
            if ( $v->menu_item_parent == 0 ) {
                // count how many top-level links we have so far...
                $toplinks++;
            }
            // if we've passed our max # ...
            if ( $toplinks > 2 ) {
                unset($items[$k]);
            }
        }
    }
    return $items;
}

0
投票

为了完成您的工作,您可以在活动主题的functions.php中使用以下代码片段-

function modify_wp_nav_menu_objects( $items, $args ) {
    if( $args->theme_location == 'menu-1' && $args->menu_id == 'left-primary-menu' ) { // if valid your conditions
        // do your modification with $items here
    }
    return $items;
}
add_filter( 'wp_nav_menu_objects', 'modify_wp_nav_menu_objects', 99, 2 );
© www.soinside.com 2019 - 2024. All rights reserved.