vendredi 25 septembre 2026

À propos

Contact

Lexique · Extensions & API WordPress

API des menus

En anglais : « Menus API »

Ensemble de fonctions WordPress permettant à un thème ou une extension d'enregistrer des emplacements de menu et d'afficher les menus de navigation choisis par l'administrateur.

Quand un thème propose plusieurs zones de navigation (menu principal, menu de pied de page, menu mobile), il a besoin d’un moyen standard de dire « voici les emplacements disponibles » sans que l’utilisateur touche au code. C’est exactement le rôle de cette API : elle sépare la structure du menu (gérée dans l’administration) de son affichage (géré par le thème).

Enregistrer un emplacement

Un thème déclare ses emplacements avec register_nav_menus(), généralement dans le fichier functions.php, en associant un identifiant technique à un libellé lisible :

register_nav_menus( array(
  'menu-principal' => __( 'Menu principal', 'mon-theme' ),
  'menu-pied'      => __( 'Menu de pied de page', 'mon-theme' ),
) );

Ces libellés apparaissent ensuite dans Apparence > Menus, où l’administrateur associe librement un menu créé à chaque emplacement. Pour afficher le résultat dans un gabarit, on appelle wp_nav_menu() en précisant le theme_location correspondant.

Personnaliser le rendu

Le HTML généré peut être ajusté via des filtres comme wp_nav_menu_args ou nav_menu_link_attributes, ou en fournissant un « walker » personnalisé (une classe qui étend Walker_Nav_Menu) quand la structure par défaut ne convient pas, par exemple pour un méga-menu.

Bon à savoir

  • Si aucun menu n’est assigné à un emplacement, wp_nav_menu() peut afficher un menu de secours basé sur les pages, sauf si l’option fallback_cb est désactivée.
  • Un même menu peut être assigné à plusieurs emplacements à la fois.
  • Les éléments de menu peuvent recevoir des classes CSS personnalisées depuis l’écran d’édition, une fois l’option « Classes CSS » activée dans les options d’écran.