<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标记,但我不需要这些标记。
对此有什么解决方案吗?
发布于 2017-01-12 16:01:22
我创建了一个自定义类"my_nav_walker“插入到我的类中,并从function.php -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));
?>https://stackoverflow.com/questions/41601488
复制相似问题