Wordpress - 如何仅在一个特定菜单上将活动类添加到当前菜单项?

时间:2018-06-14 17:39:54

标签: wordpress menu conditional-statements

因此,以下代码可以使当前父菜单项处于活动状态(以不同的颜色背景突出显示):

add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);

function special_nav_class ($classes, $item) {
  if (in_array('current-menu-parent', $classes) || in_array('current- 
  menu-item', $classes)){
    $classes[] = 'active';
  }
     return $classes;
}

我唯一的问题是它还会突出显示页脚菜单项。我希望它只影响主菜单。我做了以下尝试以使其工作(除了一些变化):

add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 3);

function special_nav_class ($classes, $item, $args) {
  if ($args->theme_location == 'primary' && in_array('current-menu- 
  parent', $classes) || in_array('current-menu- 
  item', $classes)){
    $classes[] = 'active';
  }
     return $classes;
}

add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 3);

function special_nav_class ($classes, $item, $args) {
  if ($args->theme_location == 'primary') {
    if (in_array('current-menu-parent', $classes) || in_array('current- 
    menu-item', $classes)){
    $classes[] = 'active';
    }
  }
     return $classes;
}

但它似乎不起作用。页脚项目仍然受到影响。

有什么想法?

2 个答案:

答案 0 :(得分:0)

尝试在页脚中使用外部封闭的CSS选择器,即#footer,以定位菜单和菜单项。

#footer #menu .current-menu-parent {background-color:#000 !important;}

使用FirefoxChromeSafariIE中的开发工具来检查确切的选择器。

答案 1 :(得分:0)

很奇怪......第三个例子对我有用。 检查WP admin

中的wp_nav_menu()函数调用和菜单区域
wp_nav_menu(array('theme_location' => 'primary'));//header
wp_nav_menu(array('theme_location' => 'secondary'));//footer

并检查WP版本。你需要3.1 +