如何在当前菜单项页面添加活动类?

时间:2014-02-06 作者:Ramon Vasconcelos

我有两个链接:产品和新闻。

当我单击产品或新闻时,它会返回一个包含一些帖子的归档页面,当我单击帖子时,它会返回该帖子的一个页面。

在菜单中,我在上使用此代码<li> 要在页面位于主页时添加名为active的类,请执行以下操作:

<li<?php if(is_home()) {?> class="active"<?php } ?>>
但当我有两个归档页和两个单张页时,我不知道怎么做。

如果我使用if( is_archive() || is_single() ) 它将在两个菜单项上添加类。

我们将非常感谢您的帮助。

2 个回复
最合适的回答,由SO网友:Brad Dalton 整理而成

您可以在子主题函数文件中为每个添加条件类:

这里有一个示例,您可以根据自己的需要进行修改。

add_filter(\'nav_menu_css_class\' , \'wpsites_nav_class\' , 10 , 2);

function wpsites_nav_class($classes, $item){

if( is_archive() && $item->title == "Products"){     

         $classes[] = "products-class";
 }
 return $classes;
来源:http://codex.wordpress.org/Function_Reference/wp_nav_menu#Adding_Conditional_Classes_to_Menu_Items

然后,可以使用子主题样式中的新类来设置导航菜单的样式。css文件。

.products-class {

Your CSS declarations
}
此CSS代码是基于上述PHP代码的有条件的。

SO网友:tfrommen

我想你的ProductsNews 帖子是自定义帖子
对于两个条件标记,都有$post_type-特定等效物:

if (is_post_type_archive(\'products\')) {
   // ...
} elseif (is_post_type_archive(array(\'news\', \'something\'))) {
   // ...
} elseif (is_singular(\'products\')) {
   // ...
} elseif (is_singular(array(\'news\', \'something\'))) {
   // ...
}
因此,对于产品来说,应该是:

if (is_post_type_archive(\'products\') || is_singular(\'products\'))
相应的新闻。

References:

结束

相关推荐

How to add taxonomy in menus?

书籍(自定义帖子类型)小说(税)科学(税)历史(税)--书籍体裁(税务)小说(术语)科学(学期)历史(学期)以下哪一项是做这件事的“好方法”?对于前一个(这是我目前在管理菜单中的功能,我为每个功能都提供了“register\\u taxonomy”功能),我无法选择要在菜单中显示的“Tax”。而对于后者,我可以将它们添加到菜单中,只需要一个“register\\u taxonomy”函数。