如何让我的wp_NAV_MENU单一类别页面突出显示父项?

时间:2010-09-07 作者:Dan Smart

使用新的wp\\U nav\\U菜单系统,可以添加一个类别作为菜单项,因此在我的示例中,我有一个“新闻”类别,它是“关于”的子菜单项。

About (page)
--news (category)
--history (page)
--contact us (page)

突出显示CSS的菜单从当前菜单父菜单和当前菜单父菜单中选取,因此当我在子菜单部分时,当我访问“新闻”时,顶级菜单项(例如“关于”)将突出显示。

这很好,除了当我访问“news”类别中的帖子时,它与is\\u single()和in\\u类别(“news”)相匹配。

据我在Firebug中所见,“当前菜单父菜单”和“当前菜单父菜单”应用于“新闻”菜单项,但它不应用于“关于”顶级菜单项。

我在设置菜单时有没有遗漏什么?我试过使用定制的助行器,但似乎初始菜单祖先设置不正确?

似乎我唯一的解决方案(不必求助于令人讨厌的JQuery黑客)是创建一个查询新闻帖子的“新闻”页面,而不是指向新闻“类别”。

有什么想法吗?

谢谢,丹

2010年9月9日更新代码示例

按照当前的方式,查看新闻类别中的单个页面http://www.example.com/2010/09/top-news-did-you-know/:

<li id="menu-item-28" class="menu-item menu-item-type-post_type menu-item-28"><a href="http://www.example.com/about/">About Us</a>
<ul class="sub-menu">
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy"><a href="http://www.example.com/category/events/">Events</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent current-menu-parent"><a href="http://www.example.com/category/news/">News &#038; views</a></li>
<li id="menu-item-88" class="menu-item menu-item-type-post_type"><a href="http://www.example.com/contact-us/">Contact Us</a></li>
</ul></li>

所以您可以看到,“About Us”没有任何CSS类来表示它是当前查看页面的父级。

我认为它应该如何工作(老实说,如果它不能做到这一点,那么它就是由于缺乏实现而产生的bug):

<li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor menu-item-28"><a href="http://www.example.com/about/">About Us</a>
<ul class="sub-menu">
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy"><a href="http://www.example.com/category/events/">Events</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent current-menu-parent"><a href="http://www.example.com/category/news/">News &#038; views</a></li>
<li id="menu-item-88" class="menu-item menu-item-type-post_type"><a href="http://www.example.com/contact-us/">Contact Us</a></li>
</ul></li>

这有current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor 附加到顶级菜单项的CSS类。它以这种方式适用于每一个其他页面,甚至在查看类别本身时,只是不适用于类别中的任何一个页面。

1 个回复
最合适的回答,由SO网友:Chris_O 整理而成

当前,如果页面菜单项是类别菜单项的父级,则无法执行此操作。

在您的示例中,如果About was a categoryNews was child category 然后将指定“关于(类别)”菜单项:

当前post父级当前菜单父级当前post父级

结束

相关推荐

WordPress删除wp_List_Categories中最后一项的分隔符

我正在尝试删除最后一个分隔符(通常是<br/> 标记,但我将其从wp\\u list\\u categories的最后一个链接更改为“/”)。基本上我想要这个:类别1//类别2//类别3//看起来像这样:类别1//类别2//类别3以下是我当前使用的代码:<?php $cat_array = array(); $args = array( \'author\' => get_the_author_meta(\'id\'),&#x