WordPress如何设置二级菜单点击后替换一级菜单名称

今天这篇文章教大家一个菜单设置的功能,将用户访问的二级菜单替换一级菜单的名称,就如下图所示:

Category作为一级菜单,下面有三个子类目菜单,Casual,Room,Travel。当用户访问某个子类目的时候,上面的一级菜单名称也会变成正在访问的类目名称。

点击子菜单后顶部名称同步变化

修改方法也很简单,将下面的代码复制下来。

add_action('wp_footer', function() {
?>
<script>
document.addEventListener('DOMContentLoaded', function() {
// 获取所有一级菜单项
const parentMenuItems = document.querySelectorAll('.menu-item-has-children > a');

parentMenuItems.forEach(parent => {
// 保存原始 HTML 结构(包含可能的图标元素)
const originalContent = parent.innerHTML;

// 获取当前页面 URL
const currentUrl = window.location.href;

// 获取该一级菜单下的所有二级菜单链接
const subMenuLinks = parent.parentElement.querySelectorAll('.sub-menu a');

let isSubMenuActive = false;

subMenuLinks.forEach(subLink => {
// 检查哪个二级菜单链接与当前页面 URL 匹配
if (subLink.href === currentUrl) {
// 仅替换文本内容,保留 HTML 结构和图标
const textNode = parent.childNodes[0];
if (textNode.nodeType === Node.TEXT_NODE) {
textNode.textContent = subLink.textContent;
} else {
parent.textContent = subLink.textContent;
}
isSubMenuActive = true;
}
});

// 如果没有匹配的子菜单,恢复原始内容
if (!isSubMenuActive) {
parent.innerHTML = originalContent;
}
});
});
</script>
<?php
});

登录到WordPress的后台,选择【外观】下的【主题文件编辑器】,然后打开functions.php文件,将上面的代码粘贴到里面就可以了。

粘贴代码到主题文件编辑器

然后就正常创建菜单就可以实现上面的效果了。

© 文章版权归白小菌所有,🫰欢迎转发分享。未经允许请勿抄袭转载。

白小菌
白小菌

嗨,我是白小菌,一个热爱学习并分享的博主。喜欢把复杂内容拆解成简单易懂的步骤,与大家一起学习成长。 在这里,你会看到我分享的外贸,跨境电商,Wordpress建站,SEO、有用的工具技巧等。 如果你有任何疑问或想法,可以在博客任意文章下方留言。如果有更复杂的需求,也可以选择付费咨询,我会尽我所能帮你解决问题。

文章: 455

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注