为WP中的特定页面自定义设置“current-menu-item”类

时间:2014-01-09 12:46:08

标签: wordpress navigation navbar

我正在创建一个自定义WP主题,我正在使用Wordpress导航栏。当在不同页面之间切换时,WP会在导航栏中添加一个“当前菜单项”类,该类对应于当前页面。

但是,如果导航栏中没有该页面/帖子,则不会将“current-menu-item”添加到任何导航栏项目。

我的问题是,当用户访问页面“BLOG”(实际上是一个类别页面)并点击打开single.php模板的某个帖子时,我希望导航栏项“BLOG”加下划线就像访问者访问博客页面一样。

有时我会想要在登陆SINGLE时加下下划线的另一个导航栏项目,具体取决于用户来自哪里(我也有主页帖子,然后我希望HOME加下划线)

我如何做到这一点?感谢。

1 个答案:

答案 0 :(得分:6)

您可以使用过滤器并使用条件语句检查您当前使用的页面,并在显示菜单之前添加类:

function add_custom_classes($classes, $item){
    if(is_single() && $item->title == 'BLOG'){
         $classes[] = 'current-menu-item';
    }
    return $classes;
}

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