web-dev-qa-db-ja.com

Wp_nav_menuの出力からラッピングdivとulを削除する

私はWordpressの新しいメニューシステムを使っています、そしてこれがwp_nav_menu()の結果です。

    <div class="menu-main-menu-container">
   <ul id="menu-main-menu" class="menu">
   <li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21 current_page_item menu-item-28"><a href="http://www.bemang.com/">Trang nhà</a></li>
    <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-29"><a href="http://www.bemang.com/blog/">Blog</a></li>
    <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-30"><a href="http://www.bemang.com/gioi-thieu/">Giới thiệu</a></li>
    </ul>
   </div>

欲しいのはこれだけです:

<li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21 current_page_item menu-item-28"><a href="http://www.bemang.com/">Trang nhà</a></li>
   <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-29"><a href="http://www.bemang.com/blog/">Blog</a></li>
   <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-30"><a href="http://www.bemang.com/gioi-thieu/">Giới thiệu</a></li>

いいえ、divまたはulをラップしていますが、いくつかの方法でGoogleで試してみましたが、結果が得られませんでした:(

16
Tuan Anh

ラッピングdivは簡単です。 wp_nav_menu()を使用するときは、次の引数を追加してください。'container' => false

<ul>要素には、'items_wrap'という引数があります。そのことについての詳細は woodchucky's answer を参照してください(そしてそれを支持してください!).

26
John P Bloch

wp_nav_menu()は文書化されていないパラメータを受け入れます

'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>'

これは以下によって実行されます: $nav_menu .= sprintf( $args->items_wrap, esc_attr( $wrap_id ), esc_attr( $wrap_class ), $items );

あなたはsprintf引数で遊ぶことができます

例: 'items_wrap' => '%3 $ s'は折り返し<ul>タグを削除します

29
woodchucky

Liだけを出力するには、これをwp_nav_menu配列に追加します。

'container'      => '',
'items_wrap'    => '%3$s',
5
Mill

私は存在しない'container' => false'theme_location'を指定していたので、'menu'は失敗しました。これを直すとすぐにうまくいきました。

からの解決策: wordpress.org/support

2
Mirko

折り返しdivを除外するには

add_filter('wp_nav_menu_args', 'prefix_nav_menu_args');
function prefix_nav_menu_args($args = ''){
    $args['container'] = false;
    return $args;
}
0
Chris_O