Thème personnalisé WordPress – le menu ne s’affiche pas lorsqu’il est appelé dans footer.php
J’essaie de créer un thème de site Web personnalisé pour WordPress et j’ai rencontré un petit problème. J’utilise deux menus absolument identiques dans ma partie en-tête et pied de page du site Web.
Appel
wp_nav_menu(array('theme_location' => 'header'));
dans header.php fonctionne bien, le menu s’imprime sans aucun problème, mais si je fais la même chose dans mon fichier footer.php, le menu ne s’imprime pas et var_dump(wp_nav_menu(array('theme_location' => 'header')));
imprime false.
J’ai essayé quelques solutions de contournement que j’ai trouvées sur Google en modifiant le fichier functions.php, mais aucune d’entre elles ne m’a aidé à résoudre ce problème. Mon fichier functions.php se compose maintenant d’une seule ligne
register_nav_menus( array( 'header' => 'Header menu', 'footer' => 'Footer menu' ) );
et oui, j’ai essayé d’utiliser
wp_nav_menu(array('theme_location' => 'footer'))
ainsi, avec le même résultat. Si j’appelle la même fonction depuis header.php
wp_nav_menu(array('theme_location' => 'footer'))
le menu fonctionne bien.
Solution n°1 trouvée
Vous avez correctement enregistré vos deux menus de navigation. Je le fais toujours dans mon crochet de configuration de thème initial qui est accroché au after_setup_theme
crochet. 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 que vous n’êtes pas obligé de le faire de cette façon. Ce qui suit fonctionne également
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 » (Seulement si un menu existe)
Pour le menu du 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>
À ce stade, rien ne sera affiché, et je pense que c’est là que vous êtes également bloqué. La raison en est qu’aucun élément n’est affecté au menu, et s’il n’y a rien d’affecté à un menu, alors rien ne sera affiché. Nous devons donc insérer quelque chose à afficher.
Dans le backend, allez dans « Apparence > Menus > Modifier 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 de menu.
Vous pouvez maintenant choisir des éléments du côté gauche à 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é.
Vous devriez maintenant voir votre menu de navigation dans le front-end.
Il ne vous reste plus qu’à ajouter du style à votre barre de navigation maintenant. Vous ferez exactement la même chose pour le menu de navigation de l’en-tête, acceptez que vous ajouterez l’appel au menu dans le header.php. J’espère que vous trouverez cela utile.
0 commentaire