register_nav_menus()
Définition : register_nav_menus() déclare plusieurs emplacements de menus de navigation dans un thème WordPress classique. Chaque emplacement possède un identifiant stable et un libellé compréhensible dans l’administration.
Terminologie
Nom technique : register_nav_menus()
Appellations : Nom principal utilisé
À quoi cela sert, concrètement
Elle sépare la définition des zones de navigation et le choix des menus que l’administrateur y associe. Un même thème peut ainsi proposer des emplacements distincts pour l’en-tête et le pied de page.
Fonctionnement détaillé
WordPress ajoute les identifiants au registre des emplacements du thème. Les administrateurs peuvent leur affecter des menus ; le template les affiche ensuite avec wp_nav_menu(). L’enregistrement active le support adéquat des menus.
Quand l’utiliser : contexte et choix techniques
L’utiliser dans after_setup_theme pour les thèmes classiques qui s’appuient sur le système de menus. Les thèmes de blocs privilégient souvent le bloc Navigation, qui suit un autre mode de gestion.
Situation professionnelle réaliste
Un site présente un menu principal en haut de page et un menu de liens légaux dans son pied de page.
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
add_action( 'after_setup_theme', function () {
register_nav_menus( array(
'principal' => __( 'Navigation principale', 'atoolpha-demo' ),
'legal' => __( 'Liens du pied de page', 'atoolpha-demo' ),
) );
} );
// Le rendu sera ajouté plus tard dans les templates PHP.
Décryptage de l’exemple, étape par étape
Chaque clé principal ou legal est un identifiant machine stable. Les valeurs localisables sont les noms affichés dans l’administration. Aucun menu concret n’est créé ni assigné par ces seules déclarations.
Résultat observable
Deux emplacements deviennent disponibles dans les interfaces compatibles du thème classique. Leur affichage public dépend de l’affectation des menus et des appels wp_nav_menu().
Exercice de vérification pratique
Activer un thème de test utilisant ce code, ouvrir l’écran de gestion des menus classique et associer un menu à chacun des emplacements. Tester ensuite leur affichage.
Pièges, limites et sécurité
Ne pas supposer que l’interface traditionnelle des menus est disponible à l’identique dans un thème de blocs. Utiliser des identifiants stables pour préserver les affectations lors des mises à jour.
Différences avec les notions voisines
register_nav_menus() déclare des emplacements ; wp_nav_menu() affiche une navigation dans un template.
Diagnostic avancé et cas de maintenance
Cas avancé : un menu semble disparaître après renommage de l’identifiant principal. Les affectations enregistrées sont liées aux slugs d’emplacement. Avant de changer ces clés, prévoir le comportement de migration ; les libellés visibles peuvent, eux, évoluer sans modifier l’identité technique de l’emplacement.
Termes et fonctions associés
- wp_nav_menu()
- Thème classique (Classic Theme)
