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

无法运行JavaScript函数,WordPress添加current-menu-item类失败求助

解决WordPress自定义脚本无法添加current-menu-item类的问题

我之前碰到过一模一样的坑!在WordPress的<header>标签里写了脚本函数,想要在访问指定URL(MY URL GOES HERE)时给对应菜单加上current-menu-item类,但不管用严格相等的===还是宽松相等的==判断URL,都完全没效果,折腾了好一阵才找到问题所在。

问题根源

我的错误其实很典型:把脚本放在<header>里,导致脚本在DOM完全渲染完成前就执行了。这时候页面里的菜单元素还没被浏览器加载出来,脚本自然找不到目标元素,更没法给它添加类名。

修正方案

有两种靠谱的解决方式:

  • 把脚本移到<body>末尾:也就是放在</body>标签之前,这样能确保所有DOM元素都加载完毕后再运行脚本。
  • 用DOM加载事件包裹逻辑:如果不想移动脚本位置,就把你的函数放在DOMContentLoaded事件监听里,确保DOM准备好后再执行代码,示例如下:
document.addEventListener('DOMContentLoaded', function() {
  // 替换成你的目标URL和菜单选择器
  if (window.location.href === 'MY URL GOES HERE') {
    const targetMenuItem = document.querySelector('.your-target-menu-item');
    if (targetMenuItem) {
      targetMenuItem.classList.add('current-menu-item');
    }
  }
});

这样修改后,脚本就能正确找到菜单元素并添加类名了,===的判断逻辑也能正常生效。

内容的提问来源于stack exchange,提问作者Arne De Belser

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:28:26