WordPress : Le deuxième menu a le premier ID de menu

Publié par Jean-Michel le

J’ai enregistré deux menus top-menu et main-menu.

J’ai créé deux menus sur le panneau d’administration et en ai attribué un à chacun (éléments différents)

Mais quand je regarde le front-end, je vois que les deux menus ont les mêmes éléments, et le menu principal a un identifiant « menu-top-menu-1 »

Voici ce que j’ai :

fonctions.php

function register_my_menus() {
    register_nav_menus (array(
        'main-menu' => 'Main Menu',
        'top-menu' => 'Top Menu',
    ));
}
add_action( 'init', 'register_my_menus' );

header.php

Menu principal:

 <div class=" top-menu-container">
        <?php wp_nav_menu(array(
            'container' => 'nav',
            'container_class' => 'container',
            'item_location' => 'top-menu',
            'menu_class' => 'nav top-menu pull-right',
        ));
        ?>
 </div>

Menu principal:

 <div class="container">
    <div class="logo col-xs-12 col-sm-12 col-md-3 col-lg-4">
        <a href="<?php echo home_url(); ?>"><img class="block-center " src="<?php print IMAGES; ?>/logo.png" alt="<?php bloginfo('name'); ?> | <?php bloginfo('description'); ?>"/></a>
    </div>
    <nav class="navbar navbar-default col-xs-12 col-sm-12 col-md-9 col-lg-8" role="navigation">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-menu-toggle">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <div class="collapse navbar-collapse nav-wrap" id="main-menu-toggle">
        <?php wp_nav_menu(array(
            'item_location' => 'main-menu',
            'container_class' => 'collapse navbar-collapse nav-wrap',
            'container_id' => 'main-menu-toggle',
            'menu_class' => 'nav navbar-nav main-menu',
        ));
        ?>
        </div>
    </nav>
 </div>

Voici la sortie rendue du menu supérieur et du menu principal

<nav class="container">
    <ul id="menu-top-menu" class="nav top-menu pull-right">
        <li id="menu-item-4" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4"><a href="#">CanHerp</a></li>
        <li id="menu-item-5" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5"><a href="#">Rescues</a></li>
        <li id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6"><a href="#">Breeders</a></li>
        <li id="menu-item-7" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7"><a href="#">Forums</a></li>
    </ul>
</nav>

<div class="collapse navbar-collapse nav-wrap" id="main-menu-toggle">
  <div id="main-menu-toggle" class="collapse navbar-collapse nav-wrap">
    <ul id="menu-top-menu-1" class="nav navbar-nav main-menu">
      <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4"><a href="#">CanHerp</a></li>
      <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5"><a href="#">Rescues</a></li>
      <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6"><a href="#">Breeders</a></li>
      <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7"><a href="#">Forums</a></li>
    </ul>
  </div>
</div>

J’aimerais également savoir si c’est la meilleure façon de gérer le menu réactif bootstrap (pour le menu principal’.

Solution n°1 trouvée

Enregistrez votre menu comme ceci…

register_nav_menus( array(
        'primary1'   => __( 'Top primary menu First', 'ank' ),
        'primary2'   => __( 'Top primary menu Second', 'ank' ),
        'secondary' => __( 'Secondary menu in left sidebar', 'ank' ),
    ) );

et Utiliser dans un code comme celui-ci…

<?php wp_nav_menu( array( 'theme_location' => 'primary2' ) ); ?>

utiliser theme_location instant-of item_location ……

Solution n°2 trouvée

Passant des commentaires : le paramètre que vous recherchez est theme_location, et non item_location.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *