Examen de fonction wp_nav_menu

Lorsque WordPress 3 nous a présenté la nouvelle fonctionnalité Menus, cela a changé notre façon de voir les menus de navigation. Nous n'étions plus obligés d'utiliser les fonctions normales de liste de pages ou de créer nos propres fonctions de menu personnalisées pour intégrer les menus de catégories et de pages ainsi que les éléments liés de manière externe ou physique dans un menu de navigation. Mais à quel point pouvons-nous nous adapter à cette nouvelle fonctionnalité? Dans ce tutoriel, nous allons plonger profondément dans tout ce que le wp_nav_menu que la fonction peut faire, utilisez la classe Walker pour ajouter une sous-description et touchez certaines de ses fonctions associées.


Les paramètres

La fonction a plusieurs paramètres à utiliser. Voici les valeurs par défaut répertoriées dans le codex WordPress.org:

  , 'menu' =>, 'conteneur' => 'div', 'conteneur_class' => 'menu- menu slug -container', 'conteneur_id' =>, 'menu_class' => 'menu', 'menu_id' = >, 'Echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' =>, 'after' =>, 'link_before' =>, 'link_after' =>, 'items_wrap' => '% 3 $ s',' profondeur '=> 0,' walker '=>); ?> 

Lieu thématique

En utilisant ce paramètre, nous pouvons définir un emplacement de thème qui sera ensuite utilisé sur la page Menus pour définir un menu de manière à ce qu'il fonctionne dans cette partie de votre thème, sans avoir à définir manuellement le menu qui doit y apparaître. Cela est très utile pour les distributeurs de thèmes car vous pouvez utiliser des conditions pour afficher un menu uniquement si l'utilisateur a défini un menu pour cet emplacement. La seule autre exigence est que vous utilisiez la fonction register_nav_menu () pour enregistrer ces lieux. Cela se fait généralement à partir de vos fichiers de fonction lorsque vous configurez la prise en charge des menus..

Commençons par construire nos paramètres de fonction de menu personnalisés en supposant que nous ayons enregistré un emplacement de thème appelé "primaire".

 $ params = array ('theme_location' => 'primaire');

Menu

Ce paramètre permet de définir manuellement le menu à utiliser. Dans notre exemple, nous définissons uniquement un emplacement de menu générique et non pas un emplacement exact à utiliser, mais si nous voulions indiquer à la fonction d'utiliser un menu appelé "Navigation principale", nos paramètres ressembleraient à ceci:

 $ params = array ('theme_location' => 'primaire', 'menu' => 'Navigation principale');

Récipient

Par défaut, notre menu sera enveloppé dans un div, mais si vous êtes comme moi, vous n’avez généralement pas besoin de cela et vous voulez probablement réduire la quantité de divs et d’autres balises étant utilisées pour garder votre code aussi propre que possible. Vous pouvez également utiliser ce paramètre pour définir une autre balise telle qu'un html5.

ou