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

WordPress侧边栏菜单隐藏当前页面菜单项实现需求

解决方案:自动隐藏侧边栏菜单中的当前页菜单项

嘿,这个需求完全不用手动逐个折腾,用WordPress自带的钩子就能批量搞定,给你一套通用的代码方案:

核心思路

借助WordPress的wp_nav_menu_objects过滤器钩子,在菜单渲染前自动遍历所有菜单项,判断当前页面是否和菜单项关联,匹配上的直接从菜单数组里移除,实现自动隐藏的效果。

具体代码实现

把下面的代码添加到你的WordPress主题functions.php文件中,或者创建一个简单的自定义插件来挂载这段代码:

function hide_current_page_sidebar_menu_item($items, $args) {
    // 仅对侧边栏菜单生效,这里替换成你实际的侧边栏菜单名称/ID/slug
    if ( 'sidebar-menu' !== $args->menu ) {
        return $items;
    }

    // 获取当前访问页面的ID
    $current_page_id = get_queried_object_id();

    // 遍历菜单项,移除当前页面对应的条目
    foreach ( $items as $key => $item ) {
        // 只处理页面类型的菜单项
        if ( 'page' === $item->object && $current_page_id == $item->object_id ) {
            unset($items[$key]);
        }
    }

    return $items;
}
add_filter('wp_nav_menu_objects', 'hide_current_page_sidebar_menu_item', 10, 2);

关键细节说明

  • 菜单匹配调整:代码里的'sidebar-menu'需要替换成你后台「外观-菜单」里实际的侧边栏菜单名称、ID或slug,确保只对目标侧边栏生效。
  • 自动批量处理:不管你有多少个页面,代码都会自动对比当前页面ID和菜单项关联的页面ID,无需手动设置每个页面的规则。
  • 兼容性:这套逻辑适用于所有常规页面类型的菜单项,分类下的页面也能完美适配。

测试验证

添加代码后刷新页面,比如进入「contact」页面,侧边栏里的「contact」链接就会自动消失;切换到「about us」页面,对应的菜单项也会同步隐藏,完全符合你的需求。


内容的提问来源于stack exchange,提问作者Pim Van Delft

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:32:46