WP_NAV_MENU在查看单个帖子时不突出显示当前类别

时间:2014-02-12 作者:gravy

我的WordPress网站有一堆帖子,所有帖子都是按一个顶级类别和一堆子类别归档的。

我有一个主要的网站导航来呈现分类页面,当点击它时,可以将该顶级分类中的所有帖子作为“归档”来获取。

当您访问其中一个类别页面时,该类别会如您所期望的那样突出显示,但是,当访问该类别中的单个帖子时,我不会突出显示。我希望这篇文章所属的顶级类别会被突出显示出来,看起来这就是预期的行为。

所以,我的问题是:当我查看一篇文章时,我该怎么做才能使文章所属的类别在主导航中突出显示?

该网站获得了相当多的流量,所以我渴望得到一个可扩展的解决方案。

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

有几个built-in CSS classes that come with the wp_nav_menu.

在您的情况下,您正在寻找类似于当前类别的内容,即not 包括在内。但我们可以轻松地将其添加到CSS类中:

function wpse_134409_current_category_class($classes, $item) {
    if (
        is_single()
        && \'category\' === $item->object
        && in_array($item->object_id, wp_get_post_categories($GLOBALS[\'post\']->ID))
    )
        $classes[] = \'current-category\';

    return $classes;
} // function wpse_134409_current_category_class

add_filter(\'nav_menu_css_class\', \'wpse_134409_current_category_class\', 10, 2);
Please note: 此代码未经测试!

现在,您可以将菜单项作为目标,如下所示:

#menu-id li.current-category {
    /* styles */
}

结束

相关推荐

Completely disable categories

有人知道有一个插件在WP中禁用了类别吗?我的意思是,对于现有用户和新用户,完全自动地从视图中隐藏该功能。特别是:WP admin菜单、帖子列表、它的屏幕选项和过滤器、帖子编辑器和它的屏幕选项、widgets屏幕、writing和permalink设置屏幕我遇到了各种老化的黑客来完成这一部分工作,其中大部分是用来禁用元框的代码和一些用来禁用permalink前缀的插件。我之所以选择这样做,是希望一些网页设计师或开发人员能够掌握整套功能。如果没有,在过去的3-4年中,是否会有新的API使过程变得更简单(我的W