2010-08-21 114 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