2010-08-21 82 views
3

我有以下菜单设置,基本上有一个“产品”的父菜单,其中有两个子菜单项,我在WordPress 3菜单结构中使用我的sidebar.php文件中:使用PHP/WordPress从子菜单设置父级菜单CSS类

<ul id="themenu" class="sf-menu sf-vertical"> 
     <li><a class="sf-with-ul topm" href="#">Products</a> 
      <li><a href="information">Information</a></li> 
      <li><a href="parts">Parts</a></li> 
     </li> 
</ul> 

什么我不知道该如何使用PHP是当用户点击任何一个子菜单选项来执行,即“信息或零件”,我想补充一个css currentMenu的类为其父级菜单类,即:

<li><a class="sf-with-ul topm currentMenu" href="#">Products</a> 

Will appreciate e你在这方面的帮助。

谢谢。

回答

2

WordPress的做到这一点你。它将类添加到菜单中(假设您正在使用wp_list_pages)。

中的类current_page_parent和current_page_ancestor

编辑: 如果你要打印的静态导航,你可以做到这一点

<ul id="themenu" class="sf-menu sf-vertical"> 
     <li><a class="<?php if(in_array($_SERVER['REQUEST_URI'], array('/information','/parts') ) ?>currentMenu<?php endif; ?>" href="#">Products</a> 
      <li><a href="information">Information</a></li> 
      <li><a href="parts">Parts</a></li> 
     </li> 
</ul> 

它检查URL,如果该URL列表中它会将类设置为currentMenu。您必须编辑该父级网址的数组以适应您的需求。

+0

其实我没有使用wp_list_pages。我仍然可以使用你提到的这两个类吗? – tonyf 2010-08-22 00:54:09

+0

如果您正在静态打印导航没有 – Galen 2010-08-22 04:01:09

+0

Hi @Galen。随着你的答案,本地我的网址是:http:// localhost:8888/abc当第一次进入我的网站。因此,对于你的数组('/ information','/ parts'),这似乎不起作用,因为in_array实际上是在寻找'/ abc/information'和'/ abc/parts' - 任何想法?其次,当我终于与我的网站(即http://www.abc.com)一起生活时,您的回答将涵盖此场景,还是需要将/ abc/information'和'/ abc/parts'添加为数组部分的一部分?谢谢。 – tonyf 2010-08-22 14:34:50

0

如何使用jQuery,而不是像这样:

$('#themenu a').click(function(){ 
    $(this).closest('.topm').addClass('currentMenu'); 
    return false; 
}); 
+0

Sarfraz - 我可以添加这个在我的sidebar.php文件 - 如果是的话,在哪里? – tonyf 2010-08-22 00:53:18