Supprimer les enveloppements div et ul de la sortie de wp_nav_menu

17

J'utilise le nouveau système de menus de Wordpress, et voici le résultat de 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>

Ce que je veux, c'est seulement ceci:

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

Non, enveloppant div ou ul, j'ai essayé de quelques façons et google, mais aucun résultat :(

fuxia
la source

Réponses:

28

Le div enveloppant est facile. Lorsque vous utilisez wp_nav_menu(), ajoutez cet argument:'container' => false

Pour l' <ul>élément, il y a un argument appelé 'items_wrap'. Voir la réponse de woodchucky pour plus d'informations à ce sujet (et votez pour!).

John P Bloch
la source
Merci beaucoup mec! Ça fonctionne maintenant. Je ne connaissais pas PHP et je ne savais pas que je devais mettre add_filter dans le fichier functions.php.
1
Cela n'explique toujours pas comment supprimer le div, ce qui termine plutôt le wrap_class expliqué ci-dessus. L'argument conteneur défini sur false ne fonctionne pas.
sergio
2
Si l' containerargument ne fonctionne pas, cela signifie que vous n'utilisez pas wp_nav_menu. Vous exécutez probablement la solution de rechange cb, par défaut wp_page_menu(), en omettant de spécifier un menu ou un emplacement de menu avec un menu attribué.
John P Bloch
5

Pour générer uniquement des li, ajoutez ceci au tableau wp_nav_menu:

'container'      => '',
'items_wrap'    => '%3$s',
Moulin
la source
2

'container' => falseéchouait pour moi parce que je spécifiais un inexistant 'theme_location'et 'menu'. Cela a fonctionné dès que j'ai corrigé cela.

Solution de: wordpress.org/support

Mirko
la source
0

Pour filtrer le div enveloppant:

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