<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标签,但我不需要那些标签。
有没有解决方案?
答案 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));
?>