下面的 wp_nav_menu
存在问题:
导航.php:
$arg = array(
'container' => false,
'menu_class' => 'nav navbar-nav navbar-right'
);
wp_nav_menu($arg);
函数.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>
在Work的li
中可以看到类active
,但是当我进入Work的子页面(父页面)时,输出:
<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>
您在 Work 的 li
中看不到类active
。
有什么想法可以让工作的 li
的子页面active
吗?
最佳答案
尝试更改从 functions.php
文件粘贴的 block :
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 也会自动将该类添加到页面的父级中。
关于php - WordPress - 将 .active 类添加到事件菜单项的子页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35645264/