Comment ajouter votre propre code HTML pour wp_nav_menu?
Je suis familier avec WordPress et à l'aide de WordPress, le système de menu. Mais je suis à la recherche d'un moyen d'ajouter votre propre code HTML pour wp_nav_menu()
.
Je suis en train de créer un menu comme ceci:
Remarquez comment le menu déroulant sous produits contient une image et un lien. Je tiens à re-créer cette. J'ai regardé quelques plugins, mais plutôt de code.
Je n'ai pas l'esprit dur de codage de l'image et le lien, mais j'aimerais garder la souplesse d'utilisation de WordPress pour gérer les menus.
J'ai compris comment le faire avec beaucoup moins de code que l'aide personnalisée walker: stackoverflow.com/questions/26079190/...
comment faire la différence bweteen haut niveau headin et dans une autre position? vouloir supprimer le <a> tag de haut niveau, des éléments ne...
comment faire la différence bweteen haut niveau headin et dans une autre position? vouloir supprimer le <a> tag de haut niveau, des éléments ne...
OriginalL'auteur StephenMeehan | 2012-09-03
Vous devez vous connecter pour publier un commentaire.
La façon WordPress va à travers les pages de menu pour afficher les éléments, à l'aide d'un déambulateur objet. Dans ce cas, le spécifique de la classe de cet objet est appelé Walker_Nav_Menu. Vous pouvez le trouver dans
wp-includes\nav-menu-template.php
.La
Walker_Nav_Menu
est assez simple de la classe. Vous êtes en mesure de voir, comment les liens et la structure des menus est construite. Les fonctionsstart_el
etend_el
sont utilisés pour construire les éléments de menu. Fonctionsstart_lvl
etend_lvl
sont pour la nidification des menus. Dans cette approche, nous allons être en utilisant principalement lesstart_el
etend_el
.Dans votre
functions.php
créer une classe, d'étendreWalker_Nav_Menu
avec assez similaires, les méthodes de la classe parent:Dans ces fonctions, le
$item
est votre option de menu, qui vous permet de requête de contenu supplémentaire en fonction du courant d'option de menu, si vous le souhaitez. Notez que je ne comprend passtart_lvl
etend_lvl
, mais qui n'a pas d'importance, puisque votre classe héritera automatiquement les classes parent méthodes, si ils ne sont pas écrasés.Puis, dans les fichiers de votre thème, vous pouvez appeler wp_nav_menu comme ceci:
WordPress utilisera votre classe personnalisée et fonctions, de sorte que vous pouvez modifier ce code est de sortie.
Ouais c'est vrai. Vous pouvez tout aussi bien ajouter une ouverture de balise html dans le start_el, et de la fermer dans le end_el, mais vous pouvez garder les choses simples 😉
Simple et belle réponse merci +1
Est-il un moyen de mettre le code personnalisé entre un particulier li?
La classe est maintenant appelé class-walker-nav-menu.php sinon, il a travaillé comme un charme. Quelques lignes de code à copier, mais bien son travail et il était facile à suivre merci.
OriginalL'auteur martinczerwi