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)

Références documentaires officielles

Bouton retour en haut de la page