在大多数情况下,当设计WordPress导航菜单时,您可以简单地从WordPress管理面板添加CSS类。 最近在做项目的时候,我们发现自己处在一个麻烦的境地。 我们只想在单个帖子页面上添加一个自定义的类到一个特定的菜单项。 经过四处寻找,我们找不到任何解决办法。 我们的最后一招是在twitter上提问。 Otto(@ Otto42)回答说可以使用过滤器,但没有过滤器的文档。
看了一会儿之后,我们找出了解决办法。 你需要做的是将下面的代码粘贴到你的functions.php文件中:
//在导航菜单项中过滤一个类 add_filter('nav_menu_css_class','special_nav_class',10,2); 函数special_nav_class($ classes,$ item){ if(is_single()&& $ item-> title =='Blog'){ $ classes [] ='current-menu-item'; } 返回$类; }
上面的代码只是检查它是否是一个单一的页面,菜单项标题是博客。 如果条件匹配,则添加一个“Current-menu-item”类。 我们需要添加一个自定义的类,以使其与我们正在开发的这个设计一起工作。
如果你不能说出来,基本上我们想要做的就是当用户在一个单一的职位上保持博客项目在菜单中突出显示。 这使他们能够看到单个帖子是博客的一部分。 这通常是没有道理的,但在我们正在设计的设计中,这确实是有道理的。
如果你是绝望的寻找这个代码,我们希望这篇文章帮助。 你也可以检查其他$ item变量。 一些例子是:$ item-> ID,$ item-> title,$ item-> xfn
快速编辑:在twitter上发布这篇文章之后,我们的一位用户@dbrabyn指出,我们可以用CSS Body类轻松实现这一点。 例如:
.single #navigation .leftmenublog div {display:inline-block!important;}
基本上我们所做的是添加了一个额外的div来在我们的菜单上显示一个箭头图标。 这个箭头只会显示在课程悬停或选择的情况下。 否则,它被设置为显示:无; 通过使用body类,我们只让div元素只显示特定的菜单类。