web-dev-qa-db-fra.com

wp_nav_menu - ajoute une classe sur UL

J'apprends wordpress avec bootstrap et je ne peux pas ajouter class sur la balise UL.

Dans la capture d'écran, je veux ajouter une classe nav nav-tabs sur UL mais il a été ajouté sur le parent div

$defaults = array(
    'menu_class'=> 'nav nav-tabs',        
);

wp_nav_menu( $defaults ); 

Élément inspecté: enter image description here

Référence: http://codex.wordpress.org/Function_Reference/wp_nav_men

18
JunM

Tout d'abord, vous devez créer un menu de navigation personnalisé à partir de Appearance -> Menus.

Ensuite, utilisez le wp_nav_menu avec les paramètres suivants:

<?php 
$args = array(
    'menu_class' => 'nav nav-tabs',        
    'menu' => '(your_menu_id)'
);
wp_nav_menu( $args ); 
?>

Il y a beaucoup de choses que vous pouvez lire sur Wordpress Menus. Je suggère ce qui suit:
http://codex.wordpress.org/Navigation_Menus
http://www.paulund.co.uk/how-to-register-menus-in-wordpress

21
andreivictor

Vous devez spécifier l'élément conteneur, dans notre cas 'ul' tag, puis spécifiez la classe que nous assignerons dans 'menu_class'. Voici l exemple de code:

wp_nav_menu( array(
    'theme_location' => 'top-menu',
    'container' => 'ul',
    'menu_class'=> '[add-your-class-here]'
 ) );
14
Brane

Mise à jour: cela est dû au fait que je n'ai pas créé de menu dans la page de menu.

Je veux ajouter une classe au ul de wp_nav_menu. J'ai essayé ce code:

<?php

$defaults = array(
    'menu_class'      => 'menu',
    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
);

wp_nav_menu( $defaults );

?>

Selon wordpress codex changer le menu de 'menu_class' => 'menu', devrait changer la classe du ul, mais à la place, il change la classe du div en enveloppant le ul.

4

J'ai eu le même problème, j'ai donc changé le mot "theme_location" en "name" et cela fonctionne parfaitement.

Exemple:

$defaults = array(
    '[INSTEAD OF PUTTING "theme_location" PUT "name"]'  => 'THE NAME OF YOUR "theme_location"',
    'menu_class' => 'YOUR CLASS', **[It will change the <UL> class]**
    );

    wp_nav_menu( $defaults );

Donc pour votre code:

wp_nav_menu( array(
    'name' => 'top-menu',
    'menu_class'=> 'YOUR CLASS'
 ) );

 wp_nav_menu( $defaults );

entrez la description de l'image ici

Vous pouvez également le mettre dans un conteneur comme un <DIV> ou un <NAV> etc.

Exemple:

$defaults = array(
    'name'  => 'top-menu',
    'menu_id'         => 'YOUR ID',
    'container'       => 'nav',
    'container_class' => 'YOUR CONTAINER CLASS (<nav> in this case)',
    'menu_class'      => 'YOUR CLASS FOR <UL>',
    );

    wp_nav_menu( $defaults );

entrez la description de l'image ici

2
Santiago Alejandro

Voilà comment vous devez le faire, cela fonctionne pour moi.

<?php wp_nav_menu( $menu_meta );

$menu_meta = array(
    'menu' => 'MENU-NAME-HERE',
    'items_wrap' => '<ul id="MENU-ID" class="MENU-CLASS">%3$s</ul>'
); ?>
2
Umair Razzaq