WordPress - 将.active类添加到活动菜单项的子页面?
问题描述:
有一个在下面wp_nav_menu
一个问题:WordPress - 将.active类添加到活动菜单项的子页面?
Nav.php:
$arg = array(
'container' => false,
'menu_class' => 'nav navbar-nav navbar-right'
);
wp_nav_menu($arg);
的functions.php:
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class($classes, $item){
if(in_array('current-menu-item', $classes)){
$classes[] = 'active ';
}
return $classes;
}
输出:
<ul id="menu-quinn-menu" class="nav navbar-nav navbar-right">
<li id="menu-item-15" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15"><a href="http://xxx/">Home</a></li>
<li id="menu-item-14" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-6 current_page_item current_page_parent menu-item-14 active "><a href="http://xxx/work/">Work</a></li>
<li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13"><a href="http://xxx/shop/">Shop</a></li>
<li id="menu-item-12" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12"><a href="http://xxx/contact/">Contact</a></li>
</ul>
你可以看到类作品中的,但是当我去上班的子页面(父),输出:
<ul id="menu-quinn-menu" class="nav navbar-nav navbar-right">
<li id="menu-item-15" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15"><a href="http://xxx/">Home</a></li>
<li id="menu-item-14" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-14"><a href="http://xxx/work/">Work</a></li>
<li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13"><a href="http://xxx/shop/">Shop</a></li>
<li id="menu-item-12" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12"><a href="http://xxx/contact/">Contact</a></li>
</ul>
你不看到类active
在工作的li
了。
任何想法如何我可以有active
工作的li
的子页面?
答
试着改变你从functions.php
文件从粘贴块:
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class($classes, $item){
if(in_array('current-menu-item', $classes)){
$classes[] = 'active ';
}
return $classes;
}
到:
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class($classes, $item){
if(in_array('current_page_parent', $classes)){
$classes[] = 'active ';
}
return $classes;
}
或者,你也可以使用CSS选择current_page_parent
因为WordPress的自动添加该类到页面的父级也是如此。
为什么不只是引用类'current_page_parent'? – Carlton
您是否尝试在您的函数中将'current-menu-item'更改为'current_page_parent'? –
@Carlton'为什么不引用current_page_parent类?'我该如何改变它? – laukok