我一直认为这是一个bug,但如果不是,那就相当令人不安了。您有两件事需要解决:第一件事是不要突出显示“Blog”顶级项目,第二件事是突出显示您的单个CPT所在的相应顶级项目。
可能还有其他方法,但我将与大家分享我的方法,不幸的是,它确实以CSS作为菜单ID的目标。
在nav容器中,添加一个条件,用于标识nav何时显示在单个CPT上:
<nav class="navsf<?php if (is_singular(\'news\')) { echo \' fixhilite\'; } ?>">
然后需要获取“Blog”菜单项和CPT父菜单项的id(在本例中为“News”)。假设“博客”的内容如下:
<li id="menu-item-29" ...>
对于“新闻”,它是:
<li id="menu-item-30" ...>
在CSS中,您可以像这样针对这些项目来更改文本或背景颜色,从而相应地突出显示/取消突出显示内容:
.navsf.fixhilite li#menu-item-29
.navsf.fixhilite li#menu-item-30