我在仅显示带有wp\\U nav\\U菜单的菜单时遇到问题,当前菜单项位于该菜单中。
我得到的是:
function register_menus() {
register_nav_menus(
array(
\'sidebar-menu\' => __(\'Sidebar Menu\'),
\'first-menu\' => __(\'Menu 1\'),
\'second-menu\' => __(\'Menu 2\'),
\'third-menu\' => __(\'Menu 3\')
)
);
}
add_action(\'init\', \'register_menus\')
和在页面上。php我正在做
<?php wp_nav_menu(array(\'theme_location\' => \'first-menu\')); ?>
<?php wp_nav_menu(array(\'theme_location\' => \'second-menu\')); ?>
<?php wp_nav_menu(array(\'theme_location\' => \'third-menu\')); ?>
当我现在打开菜单2中的一个页面时,我可以用
来设置它的样式。当前菜单项-因此这里没有问题。但我只想显示一个菜单,其中包含。其中的当前菜单项(菜单2)。其他菜单(菜单1、菜单3)应显示:无
有没有办法做到这一点?我想到了一个walker、一个filter或一个简单的if语句,它检查菜单,菜单中有。当前菜单项,但我自己无法处理:-(
非常感谢你
SO网友:kaiser
只需拦截导航类并搜索current-menu-item
班这将为您提供$item
它与关联。
add_filter( \'nav_menu_css_class\', \'get_active_class\', 10, 2 );
function get_active_class( $classes, $item )
{
if ( in_array( \'current-menu-item\', $classes) ) {
// We found the active class!: $item
}
return $classes;
}
现在只需抓取导航菜单并应用所需的css类或
style="display:none"
给其他人。