Laisser un rédacteur composer lui-même la structure de navigation, sans toucher au code du thème, suppose un système de liens que l’administration puisse manipuler par glisser-déposer — c’est exactement ce que propose cette fonctionnalité depuis WordPress 3.0.
Fonctionnement dans WordPress
Chaque menu est en réalité stocké comme un terme de la taxonomie interne nav_menu, et chacun de ses éléments comme un contenu du type nav_menu_item. Un thème doit d’abord déclarer les zones disponibles avec register_nav_menus(), avant qu’un menu puisse y être assigné depuis l’administration ; l’affichage se fait ensuite via wp_nav_menu().
Exemple
register_nav_menus( array(
'primaire' => __( 'Menu principal', 'mon-theme' ),
) );
wp_nav_menu( array( 'theme_location' => 'primaire' ) );
Bon à savoir
Sans emplacement enregistré par le thème, un menu créé dans l’administration reste orphelin et ne s’affiche nulle part ; c’est une confusion fréquente chez les intégrateurs qui migrent un site vers un nouveau thème sans reproduire ses register_nav_menus().
Avec un thème de bloc, la gestion des menus passe généralement par le bloc « Navigation » de l’éditeur de site, qui s’appuie sur la même structure de données en coulisses tout en offrant une édition visuelle directement dans l’interface, sans passer par l’écran classique Apparence → Menus.
Un menu peut contenir des types de liens très différents dans une même arborescence : des pages, des articles, des catégories, ou de simples liens personnalisés saisis à la main, tous mélangés librement et réordonnés par glisser-déposer sans distinction de nature dans l’affichage final.