2012-11-14 107 views
1

我有一个使用WordPress模板标记<?php wp_nav_menu(); ?>生成的菜单。防止类'子菜单'中的ul元素成为Wordpress菜单中列表项的子元素

生成的代码是:

<div class="menu"> 
<ul> 
<li class="current_page_item">Current Page</li> 
    <li class="page_item page-item-58">Menu Item #1 
     <ul class='sub-menu'> 
      <li class="page_item page-item-62">Child Item #1</li> 
      <li class="page_item page-item-60">Child Item #2</li> 
     </ul><!--END page-item-58 --> 
    </li> 
</ul> 
</div> 

我的问题是:你如何防止<ul class='sub-menu'>从成为<li class="page_item page-item-58">一个孩子?

我想生成的代码看起来像这样:

<div class="menu"> 
<ul> 
<li class="current_page_item">Current Page</li> 
    <li class="page_item page-item-58">Menu Item #1</li><!--END page-item-58 --> 
    <ul class='sub-menu'> 
     <li class="page_item page-item-62">Child Item #1</li> 
     <li class="page_item page-item-60">Child Item #2</li> 
    </ul> 
</ul> 
</div> 

我似乎无法找到答案。

回答

2

这不是你应该试图实现的。它是非法的UI元素是另一个UI元素的子:http://www.whatwg.org/specs/web-apps/current-work/multipage/grouping-content.html#the-ul-element

也是W3规范请参阅:http://www.w3.org/TR/html401/struct/lists.html#h-10.2

+0

Ahh谢谢,我不知道ul元素是另一个ul元素的孩子是非法的。如果理论上所有的ul和li元素都是div,那么问题怎么解决呢? –

+0

然后你在看wp_nav_menu的实现。我不确定你是否可以像这样限制它,但肯定文档会帮助你扩展默认行为? http://codex.wordpress.org/Function_Reference/wp_nav_menu – adhocgeek

+0

感谢您的帮助! –

0

所以我看到你想要一个结构,但是div的,而不是UL的和利的。你可以尝试找到代码here,看看它是否适合你?

它的扩展Walker_Nav_Menu和它的输出是一个类:

<div class="menu-main-menu-container"> 
    <div id="menu-main-menu" class="menu"> 
     <div id="menu-item-4" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4"><a href="#">Sample Page</a></div> 
     <div class="sub-menu"> 
      <div id="menu-item-5" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5"><a href="#">Sub-menu</a> 
       <div class="sub-menu"> 
        <div id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6"><a href="#">Sub-sub-menu</a></div> 
       </div> 
      </div> 
      <div id="menu-item-7" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7"><a href="#">Another sub-menu</a></div> 
     </div> 
    </div> 
</div> 

它的作用是,它不会包装在其归属母公司一级子菜单,但将这样做为更深的子菜单。 这是菜单的结构:

- Sample Page 
    - Sub-menu 
    - Sub-sub-menu 
    - Another sub-menu 

我不知道如果这正是你以后,但可能你可以玩的学步车,看看你能达到你想要的。