1

我有一个使用 wordpress 模板标签生成的菜单<?php wp_nav_menu(); ?>

生成的代码是:

<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>

我似乎找不到答案。

4

2 回答 2

2

这不是您应该努力实现的目标。ul 元素是另一个 ul 元素的子元素是非法的: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

于 2012-11-14T10:31:06.047 回答
0

所以我看到你想要那种结构,但是用 div 而不是 ul 和 li。你可以试试这里找到的代码,看看它是否适合你?

这是一个扩展的类,它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

我不确定这是否正是你所追求的,但也许你可以和步行者一起玩,看看你是否能实现你想要的。

于 2012-11-14T12:01:46.873 回答