web-dev-qa-db-fra.com

Le menu n'est pas visible en apparence

J'ai ajouté le code suivant à mon function.php

function register_my_menu() {
   register_nav_menu('header-menu',__( 'Menu' ));
}
add_action( 'init', 'register_my_menu' );

Et voici mon code où le menu est situé.

wp_nav_menu( array( 'theme_location' => 'header-menu' ) );

Quel pourrait être le problème?

3
Rohil_PHPBeginner

J'ai fait une réponse complète à ce sujet il y a quelque temps sur SO. Vous pouvez voir le post complet ici . Pour les utilisateurs de WPSE, j'ai copié ma réponse de ce message. Je ne l'ai pas édité, cet article visait à l'origine à ajouter et afficher un menu de navigation dans le pied de page, mais la même méthode s'applique à un menu de navigation d'en-tête. J'espère que ça t'as aidé

ORIGINAL POST DE SO

Vous avez correctement enregistré vos deux menus de navigation. Je fais toujours cela dans mon crochet de configuration de thème initial qui est accroché au crochet after_setup_theme. Donc, je ferais quelque chose comme ça dans votre functions.php:

function pietergoosen_theme_setup() {
  register_nav_menus( array( 
    'header' => 'Header menu', 
    'footer' => 'Footer menu' 
  ) );
 }

add_action( 'after_setup_theme', 'pietergoosen_theme_setup' );

Gardez à l'esprit, vous ne devez pas le faire de cette façon. Ce qui suit fonctionne aussi

register_nav_menus( array( 
        'header' => 'Header menu', 
        'footer' => 'Footer menu' 
      ) );

Vous devriez maintenant voir les deux menus dans le backend sous "Apparence> Menus> Gérer les emplacements" (Uniquement si un menu existe)

Screenshot of menus

Par souci du menu de pied de page, ajoutez le code suivant dans votre pied de page où vous devez afficher le menu:

<nav id="footer-navigation" class="site-navigation footer-navigation" role="navigation">
       <?php wp_nav_menu( array( 'theme_location' => 'footer', 'menu_class' => 'nav-menu', 'fallback_cb' => false ) ); ?>
</nav>

A ce stade, rien ne sera affiché, et je pense que c'est là que vous vous bloquez également. La raison en est qu’aucun élément n’est assigné au menu, et si rien n’est assigné à un menu, rien ne sera affiché. Nous devons donc insérer quelque chose à afficher.

Dans le backend, allez dans "Apparence> Menus> Éditer les menus". Dans le champ "Nom du menu", entrez un nom pour votre menu et cliquez sur "Créer un menu". Vous pourrez maintenant ajouter le menu dans l'écran du menu.

Screenshot of the menu

Vous pouvez maintenant choisir des éléments à gauche pour les insérer dans votre menu. Vous pouvez également définir l'emplacement du menu, dans ce cas dans le pied de page. J'ai choisi d'afficher les catégories dans le pied de page. Cliquez sur "Enregistrer le menu" lorsque vous avez terminé.

Screenshot of saved menus

Vous devriez maintenant voir votre menu de navigation au début.

Screenshot of footer menu

Vous devez simplement ajouter un style à votre barre de navigation maintenant. Vous ferez exactement la même chose pour le menu de navigation d'en-tête, acceptez de rajouter l'appel au menu dans le header.php. J'espère que vous trouvez cela utile.

3
Pieter Goosen