我有一个菜单项,其中添加了一个CSS类和一个“page\\u active”类(该类在相关项下直观地显示下划线)。如果is_page(\'Latest\')
或is_archive(\'sites)
条件返回true。
我的一个主菜单项(menu-item-3)是一个自定义的分类法,因此我使用is_tax(\'web\')
对于名为“web”的自定义分类法。这并没有添加“page\\u active”类,而且CSS类仍在添加到其他两个项目之一。
下面是代码-如果您有任何关于如何解决此问题的想法,我们将不胜感激。
CSS
.underline.page_active:after {
content: \'\';
position: absolute;
width: 100%;
height: 5px;
background: #a882ff;
left: 0;
bottom: -0.39em;
z-index: -1;
}
.menu-item-2.underline.page_active:after {
width: 3.1rem;
left: 5.7rem;
z-index: -1;
bottom: 2rem;
}
HTML/PHP
<ul class="nav-menu-items">
<li class="menu-item menu-item-1"><a class="td nav-link underline <?php if (is_page(\'Latest\')) {echo "page_active";};?>" title="Latest" href="<?php echo esc_url(home_url( \'/\' ));?>">Latest</a></li>
<li class="menu-item menu-item-2 underline <?php if (is_archive(\'sites\') || is_tax(\'graphic-design\')){echo "page_active";}; ?>">Design
<ul class="submenu design-submenu">
<li class="submenu-item submenu-item-1"><a title="Sites We Like" class="td nav-link" href="<?php echo esc_url(home_url(\'/sites\'));?>">Sites We Like</a></li>
<li class="submenu-item submenu-item-2"><a title="Graphic Design" class="td nav-link" href="<?php echo esc_url(home_url(\'/news_categories/graphic-design\'));?>">Graphic Design</a></li>
</ul>
</li>
<li class="menu-item menu-item-3"><a title="Web" class="td nav-link underline <?php if (is_tax(\'web\')){echo "page_active";};?>" href="<?php echo esc_url(home_url(\'/news_categories/web\'));?>">Web</a></li>
<li class="menu-item menu-item-4"><a title="Marketing" class="td nav-link underline" href="<?php echo esc_url(home_url(\'/news_categories/marketing\'));?>">Marketing</a></li>
</ul>
最合适的回答,由SO网友:The Chewy 整理而成
我找到了解决办法is_tax();
方法需要两个参数—分类法和术语本身,因此应该是:
is_tax(\'news_categories\', \'web\')
作为额外的一点
is_archive(\'sites\')
也应该是
is_post_type_archive(\'sites\')