Je sais que vous pouvez ajouter une classe dans les options du menu personnalisé, mais il l'ajoute au LI avant le A. Je veux appliquer la classe directement à ce A spécifique plutôt qu'à l'ensemble du LI.
Ainsi, au lieu de la sortie étant
<li id="menu-item-51" class="NEWCLASS menu-item menu-item-type-custom menu-item-51"><a href="#">Link</a> </li>
Je veux que ce soit aussi comme ça.
<li id="menu-item-51" class="menu-item menu-item-type-custom menu-item-51"><a href="#" class="NEWCLASS">Link</a></li>
Des idées?
.class
à.class a
?<li>
élément contenant . Si vous avez un sous-menu sous cet élément particulier, ce n'est pas un problème, vous pouvez le résoudre dans le CSS pour (je peux donner des exemples si nécessaire).Réponses:
vous pouvez utiliser un
nav_menu_css_class
filtreEn utilisant cet article $, vous pouvez n'importe quelle condition que vous souhaitez. et cela ajoutera la classe au li spécifique et vous pouvez styler la balise a en fonction de cela comme ceci:
la source
get_page_template_slug
travailler. Des idées?J'ai trouvé une solution sur ce site via l'utilisation d'un déambulateur personnalisé .
Deux étapes: remplacez le code wp_nav_menu par défaut par un code modifié, puis ajoutez du code au functions.php du thème.
Tout d'abord, remplacez le wp_nav_code par défaut par le suivant (le code est copié à partir du site ci-dessus):
Ensuite, ajoutez le code suivant à functions.php. En faisant cela, vous pouvez réellement ajouter une classe aux liens du menu:
Vers la fin du code, plusieurs lignes commencent par $ item_output. En particulier, vous voulez regarder cette pièce:
Parce que cette ligne détermine la sortie pour le début du lien HTML. Si vous le changez en quelque chose comme ceci:
Ensuite, tous vos liens dans le menu auront la classe = "abc" ajoutée à eux.
Cela dit, il n'autorise pas de classe personnalisée pour chaque lien (ou du moins je ne sais pas comment le coder). C'est un problème pour moi.
Pour ceux qui demandent pourquoi voudriez-vous faire cela? Je veux que mes liens de menu ouvrent des lightboxes (colorboxes, pour être plus précis), et ils ont besoin de classes sur les liens pour le faire. Par exemple:
Existe-t-il un moyen de générer dynamiquement les classes, telles que "lightbox1" pour le premier lien, "lightbox2" pour le deuxième lien, etc.?
la source
RESOLU !!!! J'avais besoin de comprendre cela pour créer le lien de l'élément de menu pour HTML en ligne dans une boîte fantaisie. Collez le code suivant dans la fonction de votre thème: php:
Ensuite ... dans l'onglet Menu du tableau de bord WP, créez un lien personnalisé, ajoutez-le à votre menu. En haut, où est indiqué Options d'écran, assurez-vous que vous avez coché "Lien relation (XFN)". Il ajoutera ce champ à votre élément de menu personnalisé. Tapez "fancybox" (sans guillemets) dans le champ et enregistrez votre menu.
La fonction recherche l'appel au menu de navigation, puis trouve où vous avez un
rel="fancybox"
et le remplace par unrel="fancybox" class="fancybox"
. Vous pouvez remplacer fancybox par la classe que vous souhaitez ajouter à vos éléments de menu. Fait et fait!la source
Les réponses actuelles ne semblent pas reconnaître que la question est de savoir comment ajouter une classe à l'
a
élément et non l'li
élément, ou sont trop compliquées. Voici une approche simple utilisant lenav_menu_link_attributes
filtre qui vous permet de cibler un menu spécifique en fonction de son slug et un lien de page spécifique dans ce menu en fonction de son ID. Vous pouvez var_dump $ args et $ item pour obtenir plus de façons de créer votre condition.la source
if
pourif ($args->theme_location == 'footer-menu' )
de jeter un regard dans le menu par son emplacement, et tout fonctionne très bienJe sais que cela a été répondu il y a longtemps, mais tout comme des informations générales, j'ai trouvé comment ajouter une classe à chaque élément de menu individuellement en utilisant l'option "Écran" de la page d'administration WordPress pour les menus personnalisés.
la source
J'ai dû faire quelque chose de similaire récemment et j'ai trouvé une autre façon. J'ai dû ajouter une classe similaire pour un plugin Nivo lightbox. J'ai donc ajouté "nivo" à l'attribut rel ("Link Relationship (XFN)"), puis le suivant sur le
nav_menu_link_attributes
filtre.la source
Dans la zone supérieure de la
Appearance -> Menus
page, cliquez pour développer laScreen Options
, cochez la case deCSS Classes
. Maintenant, lorsque vous développez chacun des éléments de menu ajoutés, vous verrez unCSS Classes (optional)
champ.la source