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的子页面?

+0

为什么不只是引用类'current_page_parent'? – Carlton

+0

您是否尝试在您的函数中将'current-menu-item'更改为'current_page_parent'? –

+0

@Carlton'为什么不引用current_page_parent类?'我该如何改变它? – laukok

试着改变你从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的自动添加该类到页面的父级也是如此。