wordpress wp_nav_menu之前

时间:2017-01-11 22:01:28

标签: wordpress

              <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标签,但我不需要那些标签。

有没有解决方案?

1 个答案:

答案 0 :(得分:0)

我创建了一个自定义类&#34; my_nav_walker&#34;插入我的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));
?>