2012-09-14 62 views
1

我使用Wordpress'wp_nav_menu來顯示我的主導航。 嘗試在wordpress中重新創建下面的HTML片段似乎相當複雜。wordpress子菜單的不同類

front end menu

下面是HTML版本(在WordPress的樣式表類進行了調整,針對那些WordPress使用):

<ul class="nav"> 
<li class="home"><a href="#">Home</a></li> 
<li><a href="#">Store</a> 
    <div class="subnav"> 
     <div class="holder"> 
      <ul class="child"> 
       <li><a href="#">Category 1</a> 
        <ul class="grandchild"> 
         <li><a href="#">Sub-category 1</a></li> 
        </ul> 
       </li> 
       <li><a href="#">Category 2</a> 
        <ul class="grandchild"> 
         <li><a href="#">Sub-category 1</a></li> 
         <li><a href="#">Sub-category 2</a></li> 
        </ul> <!-- Grandchild --> 
       </li> 
      </ul> <!-- Child nav --> 
     </div> <!-- Holder --> 
    </div> <!-- Subnav --> 
</li></ul><!-- nav --> 

在WordPress的是什麼問題,我使用了學步車在我的第一個子菜單週圍添加div,以保持一切到位。這種方式雖然增加了2個div(subnav和holder)給每個子菜單。

我如何才能編輯下一個深度級別 - 不加2周的div - 編輯子菜單

function start_lvl(&$output, $depth = 0, $args = array()) { 
$indent = str_repeat("\t", $depth); 
$output .= "\n$indent<div class=\"subnav\" ><div class=\"holder\"><ul class=\"sub-menu\">\n"; 

function end_lvl(&$output, $depth = 0, $args = array()) { 
$indent = str_repeat("\t", $depth); 
$output .= "$indent</ul></div></div>\n"; 
+0

也卡住了。你是否缺少start_lvl()函數中的$ item參數? – emc

回答

0

爲什麼你需要類添加到子菜單爲目標的類名他們與CSS?你就不能這樣做:

#nav > li a { 
    /* Target first level */ 
} 

#nav > li > ul > li a { 
    /* Target second level */ 
} 

#nav > li > ul > li > ul > li a { 
    /* Target third level */ 
}​ 

這裏的說明概念的的jsfiddle:http://jsfiddle.net/3XtkE/