2017-01-11 2 views
0
   <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> 

私はカスタムワードプレスメニューを作ろうとしていますが、私はこのコードに問題があります。ご覧のように、menuitem-1とmenuitem-2の前にspanタグがあり、close spanタグもありますが、サブメニュー項目の周りにはありません。ワードプレスwp_nav_menu before after

私はこれを実行しようとしました:

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

が、私はそこに、このメソッドを使用する場合も、サブメニュー項目を中心に、タグにまたがるが、私はこれらのタグを必要といけないしています。

解決方法はありますか?

答えて

0

私は、カスタムクラス「my_nav_walker」私のfunction.phpに挿入を作成し、クラス・ウォーカー-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)); 
?> 
関連する問題