wp_nav_menu (), comment changer la classe <li>?
-
-
Ici,vouspouvez ajouter une classe différente dans ul> li> a https://sdtuts.com/wordpress-add-custom-class-in-wp_nav_menu-links/Here you can add different class in ul > li >a https://sdtuts.com/wordpress-add-custom-class-in-wp_nav_menu-links/
- 0
- 2018-06-09
- Rameez SOOMRO
-
4 réponses
- votes
-
- 2011-12-26
Utilisez un marcheurpersonnalisé ,supprimeztout ce dont vousn'avezpasbesoinetajoutez vos classes.Voici unmarcheur quej'utilisepour obtenir une liste avec unbalisagepropre: T5_Nav_Menu_Walker_Simple .
Vouspouvez égalementfiltrer
'nav_menu_css_class'
ou'wp_nav_menu_items'
.Mais une classe demarcheurestplusfacile à comprendreet à contrôler àmon avis.Use a custom walker, remove anything you don’t need and add your classes. Here is a walker I use to get a list with clean markup: T5_Nav_Menu_Walker_Simple.
Your could also filter
'nav_menu_css_class'
or'wp_nav_menu_items'
. But a walker class is easier to understand and to control in my opinion.-
Merci Toscho,je viens detrouver que dans lanouvelle version de Wordpress (3.3),nouspouvons ajouter une classepersonnaliséepour chaque élément demenu,ce qui résoutmonproblème.J'aiessayé le script que vousm'avez suggéré (T5_Nav_Menu_Walker_Simple) qui supprimetout du `
- `,commentpouvons-nous contrôler les éléments quenous voulons conserver?
Thanks Toscho, I just find that in the new version of Wordpress (3.3) we can add custom class fir each menu items wich kind of solve my problem. I tried the script you suggested to me (T5_Nav_Menu_Walker_Simple) which does strip everything from the `- `, how can we control which elements we want to keep?
- 0
- 2011-12-26
- Christian
-
@Christian Vouspouvez changer le déambulateur selon vosbesoins,cen'est qu'unexempletrèsbasique.Pour voir quellesinformations sont disponibles,ajoutez un `print_r ($item,TRUE)` à chaque `li`.Ensuite,décidez quoien faire.:)@Christian You can change the walker as you need, it is just a very basic example. To see which information is available, add a `print_r( $item, TRUE )` to each `li`. Then decide what to do with it. :)
- 1
- 2011-12-26
- fuxia
-
Celam'a orienté dans labonne direction,ce dontj'avaisbesoin était le ** wp_nav_menu **,**mais **j'avaisbesoin de changer leparamètre 'container_class',pourtravaillerpourmon cas d'utilisationparticulier,oùj'ai,à certaines conditions,échangé leprincipalmenupour un autre,maisilfallait que les classes soient cohérentespour css.This pointed me in the right direction, what I needed was the **wp_nav_menu**, **but** I needed to change the 'container_class' parameter, to work for my particular use case, where I on some condition swapped the main menu for another one, but needed the classes to be consistent for css.
- 0
- 2018-01-25
- D. Dan
-
- 2012-09-22
aller à l'apparence>menus - sélectionnez lemenu que vous voulez - allez dans "options de l'écran"en haut à droite,sélectionnez "classes css" - ajoutez une classe à chaque élément demenu ..
go to appearance > menus - select the menu you want - go to "screen options" at the top right, select "css classes" - add a class to each menu item..
-
- 2019-04-22
Définition de la classe
<li>
surnav-link
,carbootstrap 4.3en abesoin:function add_menu_link_class($atts, $item, $args) { $atts['class'] = 'nav-link'; return $atts; } add_filter('nav_menu_link_attributes', 'add_menu_link_class', 1, 3);
Vouspouvez également désactiver l'attribut
id
dans cetableau.Setting the
<li>
class tonav-link
, as bootstrap 4.3 needs it:function add_menu_link_class($atts, $item, $args) { $atts['class'] = 'nav-link'; return $atts; } add_filter('nav_menu_link_attributes', 'add_menu_link_class', 1, 3);
You can also unset the
id
attribute in that array. -
- 2013-06-13
Comme le dernierposter l'amentionné,vouspouvez ajouter vospropres classes via lesmenus apparence> avec les classes CSS cochées dans les options de l'écran.Dans lemarcheur,vouspouvez accéder à ce que vous yentrez via:
$item_output .= '<a'. $attributes .' class="'. $item->classes[0].'">';
J'aimême utilisé cecipour ajouter desimagespré-nommées dans lemenu - unpeufloconneux,mais celafonctionne.
<img src="theme/images/navigation/'.$item->classes[0].'" width="48" height="48">
As the last poster mentioned, you can add your own classes via appearance > menus with CSS classes ticked in the screen options. In the walker, you can access what you enter there via:
$item_output .= '<a'. $attributes .' class="'. $item->classes[0].'">';
I have even used this to add pre-named images in the menu - a little flakey, but it works.
<img src="theme/images/navigation/'.$item->classes[0].'" width="48" height="48">
Je crée unmenupourmon site Web. La statique ressemble à ceci:
J'aipu comprendre commentpersonnaliser labalise
<ul>
,pourme débarrasser de labalise automatique<div>
. Maismaintenant,je souhaitepersonnaliser labalise<li>
pourpouvoir attribuer unnom declass
différentpour contrôler un comportement spécifique via CSS. Lorsquej'utilise lewp_nav_menu()
,le résultatest le suivant:Je veuxme débarrasser de l '
id
dans lesbalises<li>
et changer laclass
pour refléter lenom de lapage Je souhaite créer un lien vers. Engros,je veux afficher lamême chose que lepremierextrait de code de cet article.La raisonpour laquelleje fais cela,c'est quej'utilise desimagespersonnalisées qui sont contrôléesparmon CSSinsted detextebrut.
Est-cepossible? Quelle stratégie dois-je utiliserpour surmonter ceproblème?