【问题标题】:Different classes for wordpress sub-menuswordpress 子菜单的不同类别
【发布时间】:2012-09-14 13:38:18
【问题描述】:

我正在使用 Wordpress'wp_nav_menu 来显示我的主导航。 然而,尝试在 wordpress 中重新创建以下 HTML 似乎相当复杂。

这是 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";

【问题讨论】:

  • 也卡住了。您是否缺少 start_lvl() 函数中的 $item 参数?

标签: wordpress submenu depth


【解决方案1】:

为什么需要向子菜单添加类以使用 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    相关资源
    最近更新 更多