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

16

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

fuxia
quelle

Antworten:

27

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

Für das <ul>Element gibt es ein Argument namens 'items_wrap'. Siehe woodchucky Antwort für weitere Informationen auf , dass man (und upvote es!).

John P Bloch
quelle
Vielen Dank Alter! Es funktioniert jetzt. Ich war nicht mit PHP vertraut und wusste nicht, dass ich den add_filter in die functions.php einfügen muss.
1
Das erklärt immer noch nicht, wie man das div entfernt, was die oben erläuterte wrap_class eher abschließt. Das auf false gesetzte Containerargument funktioniert nicht.
Sergio
2
Wenn das containerArgument nicht funktioniert, bedeutet dies, dass Sie es nicht verwenden wp_nav_menu. Wahrscheinlich führen Sie die Standardeinstellung "Fallback-Cb" aus, wp_page_menu()indem Sie entweder kein Menü oder keine Menüposition mit einem zugewiesenen Menü angeben.
John P Bloch
5

Um nur li auszugeben, füge dies dem Array wp_nav_menu hinzu:

'container'      => '',
'items_wrap'    => '%3$s',
Mühle
quelle
2

'container' => falsehat bei mir versagt, weil ich ein nicht vorhandenes 'theme_location'und angegeben habe 'menu'. Es hat funktioniert, sobald ich das behoben habe.

Lösung von: wordpress.org/support

Mirko
quelle
0

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;
}
Chris_O
quelle