web-dev-qa-db-de.com

Entfernen Sie den Umbruch div und ul aus der Ausgabe von wp_nav_menu

Ich benutze das neue Menüsystem von Wordpress und hier ist das Ergebnis von 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>

Was ich will ist nur das:

<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>

Nein, div oder ul einwickeln, ich habe versucht, auf wenige Arten und googeln, aber kein Ergebnis :(

16
Tuan Anh

Das Wickeln von div ist einfach. Wenn Sie wp_nav_menu() verwenden, fügen Sie das folgende Argument hinzu: 'container' => false

Für das Element <ul> gibt es ein Argument mit dem Namen 'items_wrap'. Siehe woodchuckys Antwort für weitere Informationen zu diesem Thema (und stimme dem zu!).

26
John P Bloch

wp_nav_menu() akzeptiert einen undokumentierten Parameter

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

Dies wird ausgeführt von: $nav_menu .= sprintf( $args->items_wrap, esc_attr( $wrap_id ), esc_attr( $wrap_class ), $items );

sie können mit den Sprintf-Argumenten herumspielen

beispiel: 'items_wrap' => '% 3 $ s' würde das umhüllende <ul>-Tag entfernen

29
woodchucky

Fügen Sie für die Ausgabe von nur li Folgendes zum Array wp_nav_menu hinzu:

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

'container' => false schlug bei mir fehl, weil ich einen nicht vorhandenen 'theme_location' und 'menu' angegeben habe. Es hat funktioniert, sobald ich das behoben habe.

Lösung von: wordpress.org/support

2
Mirko

So filtern Sie das Umhüllungs-Div aus:

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