【问题标题】:wordpress wp_nav_menu before afterwordpress wp_nav_menu 之前 之后
【发布时间】:2017-01-12 16:01:21
【问题描述】:
              <nav>
                <ul class="menu sf-js-enabled">
                    <li class="item1">
                        <span><a href="#" title="">menuitem-1</a></span>
                        <ul>
                            <li><a href="#">submenu-1-1</a></li>
                            <li><a href="#">submenu-1-2</a></li>
                        </ul>
                    </li>
                    <li class="item2">
                        <span><a href="#" title="">menuitem-2</a></span>
                        <ul>
                            <li><a href="#">submenu-2-1</a></li>
                            <li><a href="#">submenu-2-2</a></li>
                            <li><a href="#">submenu-2-3</a></li>
                            <li><a href="#">submenu-2-4</a></li>
                        </ul>
                    </li>
                </ul>
            </nav>

我正在尝试制作自定义 wordpress 菜单,但我对这段代码有疑问。如您所见,在 menuitem-1 和 menuitem-2 之前有一个 span 标签,还有一个 close span 标签,但没有围绕子菜单项。

我试图这样做:

<?php wp_nav_menu(array('container' => 'nav', 'container_class' => ' ', 'theme_location' => 'primary', 'menu_class' => 'menu sf-js-enabled', 'before' => '<span>', 'after' => '</span>') );?>

但如果我使用这种方法,子菜单项周围也会有 span 标签,但我不需要这些标签。

有什么解决办法吗?

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    我创建了一个自定义类“my_nav_walker”插入到我的 function.php 中,并从 class-walker-nav-menu.php 修改了原始类的这些行

    现在可以正常工作了!

    $item_output = ($depth == 0 ? $args->before . '<span>' : $args->before); //MODIFIED LINE original --> $item_output = $args->before;
    $item_output .= '<a'. $attributes .'>';
    $item_output .= $args->link_before . $title . $args->link_after;
    $item_output .= '</a>';
    $item_output .= ($depth == 0 ? $args->after . '</span>' : $args->after); //MODIFIED LINE original --> //$item_output .= $args->after;
    

    然后把它放在我的标题中

    <?php 
    $walker = new my_nav_walker;
    wp_nav_menu(array(
    'container' => 'nav',
    'container_class' => ' ',
    'theme_location' => 'primary',
    'menu_class' => 'menu sf-js-enabled',
    'walker' => $walker));
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 2014-10-25
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      相关资源
      最近更新 更多