我有一个主菜单,代码是
<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
上。
因此可以在主菜单上显示一些有限的菜单列表吗?
请尝试使用此功能
//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;
}
为了完成您的工作,您可以在活动主题的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 );