Ajouter des menus à vos thèmes WordPress
La version 3.0 de WordPress a apporté son lot de nouveautés, parmi elles, la possibilité de gérer des menus dans la partie administration pour les afficher de manière dynamique dans vos templates.
Un vieux thème version WordPress 2 ou un petit template cousu main ne prennent pas en charge les menus de manière native. Ouvrir ces possibilités ne tient qu’à quelques lignes de code très simples à manier, il suffit de déclarer les différents menus dans le fichier de fonctions pour pouvoir les utiliser dans les différents fichiers du thème.
Déclarer le ou les menus
Déclarer les possibilités dans le fichier functions.php de votre thème via l’une des deux solutions suivantes.
Pour un seul menu : register_nav_menu( 'Emplacement', 'Description' );
Pour déclarer plusieurs menus (avec un « s » donc) :
register_nav_menus(array(
'Emplacement1' => 'Description1',
'Emplacement2' => 'Description2'
));
L’emplacement peut être défini clairement par des termes de type « sidebar », « top », « footer », etc. mais il sert surtout de référence unique, donc il peut prendre n’importe quel nom selon vos préférences.
La description sera reprise dans l’administration du menu, préférer des mots courts mais explicites, ici pas de grand bla-bla.
Afficher les menus correspondants
Les différents menus peuvent ensuite être simplement appelés au sein de n’importe quel fichier du thème avec la commande
wp_nav_menu( array('menu' = 'Project Nav' ));
L’affichage du menu peut contenir plusieurs options à envoyer sous forme de tableau. Les principales sont « menu_class », « menu_id », « before », « after », « items_wrap » et « depth ».
L’utilisation d’items_wrap peut être très pratique pour définir l’affichage de chaque ligne, cet argument comporte une syntaxe spécifique.
<ul id="%1$s" class="%2$s">%3$s</ul>
Où %1$s représente l’identifiant de l’entrée du menu, %2$s le nom de sa classe CSS et enfin %3$s le lien.
Comme d’habitude, l’ensemble des possibilités de cette fonction sont documentés dans le codex.