You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WordPress导航菜单CSS类过滤函数,保留nav-active与has-child类

解决方案

你只需要调整过滤函数,在保留has-child类的基础上处理当前菜单项的nav-active类即可,修改后的代码如下:

add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class($classes, $item){
    // 初始化要返回的类数组
    $new_classes = [];
    
    // 给当前菜单项添加自定义激活类
    if(in_array('current-menu-item', $classes)){
        $new_classes[] = 'nav-active';
    }
    
    // 保留原有的has-child类
    if(in_array('has-child', $classes)){
        $new_classes[] = 'has-child';
    }
    
    return $new_classes;
}

代码说明

  • 先创建空数组$new_classes用来存放最终输出的CSS类
  • 判断当前菜单项是否包含current-menu-item类,存在则添加自定义的nav-active
  • 检查原类列表里的has-child类,存在则保留到新数组中
  • 最后返回组合后的数组,实现既保留has-child,又仅给当前项添加nav-active的需求

内容的提问来源于stack exchange,提问作者BN83

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:20:30