wp_nav_menu()
Définition : wp_nav_menu() affiche un menu WordPress depuis un thème classique, selon un emplacement déclaré ou des paramètres explicites. Elle génère le balisage de navigation et offre des possibilités de personnalisation de sortie.
Terminologie
Nom technique : wp_nav_menu()
Appellations : Nom principal utilisé
À quoi cela sert, concrètement
Elle relie l’organisation des liens gérés par un administrateur à leur affichage dans l’en-tête ou le pied de page, sans écrire chaque lien manuellement dans le fichier du thème.
Fonctionnement détaillé
WordPress récupère le menu correspondant au theme_location ou aux autres paramètres, prépare son arbre d’éléments puis produit une structure HTML. Les options de conteneur, profondeur et solution de repli influencent le rendu.
Quand l’utiliser : contexte et choix techniques
L’utiliser dans un template PHP classique après enregistrement d’un emplacement. Prendre en charge le cas où aucun menu n’a encore été affecté à cet emplacement.
Situation professionnelle réaliste
Un thème rend la navigation principale avec un élément nav identifié, tout en évitant qu’un menu de remplacement apparaisse lorsque l’emplacement est vide.
Exemple pratique — PHP commenté
Exemple pédagogique : adapter le nom du thème, les fichiers et les conditions à un environnement de développement. Il ne constitue pas une preuve d’exécution sur ATOOLPHA.
<?php
// Dans header.php d’un thème classique.
wp_nav_menu( array(
'theme_location' => 'principal',
'container' => 'nav',
'container_class' => 'navigation-principale',
'container_aria_label' => __( 'Navigation principale', 'atoolpha-demo' ),
'menu_class' => 'liste-menu',
'fallback_cb' => false,
) );
Décryptage de l’exemple, étape par étape
Le theme_location cible l’emplacement enregistré ; container demande un élément nav, menu_class affecte une classe à la liste et fallback_cb false supprime le repli implicite vers une autre navigation.
Résultat observable
Le menu affecté à principal s’affiche avec les classes indiquées. Sans menu associé, cette configuration évite de fabriquer une navigation alternative inattendue.
Exercice de vérification pratique
Dans un thème local, affecter un menu puis retirer son affectation et comparer le HTML. Tester au clavier l’accès aux liens, la visibilité du focus et le comportement mobile.
Pièges, limites et sécurité
Le balisage seul ne garantit pas un menu déroulant accessible. Les styles et scripts éventuels doivent préserver les interactions au clavier, les labels et l’ordre logique des liens.
Différences avec les notions voisines
wp_nav_menu() produit la navigation classique ; le bloc Navigation des thèmes de blocs possède sa propre interface et son propre système de contenus.
Diagnostic avancé et cas de maintenance
Cas avancé : un emplacement non configuré affiche soudain une liste de pages. Il peut s’agir du comportement de repli du menu. Configurer explicitement fallback_cb et prévoir le message ou l’absence de navigation, plutôt que laisser apparaître une structure inattendue en production.
Termes et fonctions associés
- register_nav_menus()
- get_header()
