php - WordPress - 将 .active 类添加到事件菜单项的子页面?

标签 php css wordpress

下面的 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/

相关文章:

php - nginx php-fpm 无法打开流权限被拒绝

css - 如何绘制半圆(仅限边框、轮廓)

html - 使所有 div child 具有相同的高度

wordpress - 找不到 si tem ap- tax -po st_ tag .xm l - 网站管理员工具

html - 图片缩略图后的 CSS 和测试对齐

javascript - 如何将 JSON 解码为 PHP 数组/变量

php - 单击按钮将 mysql 查询导出到 csv

html - 在线服务器上的 CSS 百分比值需要与本地不同

php - 将简码解析为数组

php - 从 select 语句中查找重叠时间