Ajouter des attributs personnalisés aux éléments de menu sans plugin
2 réponses
- votes
-
- 2013-05-25
Filtre
nav_menu_link_attributes
:add_filter( 'nav_menu_link_attributes', 'wpse_100726_extra_atts', 10, 3 ); function wpse_100726_extra_atts( $atts, $item, $args ) { // inspect $item, then … $atts['custom'] = 'some value'; return $atts; }
Celafonctionne avec WordPress & lt;3.6:
add_filter( 'walker_nav_menu_start_el', function( $item ) { $parts = explode( '>', $item ); $out = array (); foreach ( $parts as $i => $part ) { if ( 0 === strpos( $part, '<a ' ) ) // a start $out[ $i ] = $part . ' data-foo="bar"'; else $out[ $i ] = $part; } return join( '>', $out ); });
Filter
nav_menu_link_attributes
:add_filter( 'nav_menu_link_attributes', 'wpse_100726_extra_atts', 10, 3 ); function wpse_100726_extra_atts( $atts, $item, $args ) { // inspect $item, then … $atts['custom'] = 'some value'; return $atts; }
This works with WordPress < 3.6:
add_filter( 'walker_nav_menu_start_el', function( $item ) { $parts = explode( '>', $item ); $out = array (); foreach ( $parts as $i => $part ) { if ( 0 === strpos( $part, '<a ' ) ) // a start $out[ $i ] = $part . ' data-foo="bar"'; else $out[ $i ] = $part; } return join( '>', $out ); });
-
J'ai été surpris de voir cefiltre carje venais de lire le code source dumenu denavigationet jene l'aipas remarqué.Il setrouve dans la versionbêta 3.6.0maispas dans la version deproduction 3.5.1.L'ancienfiltre «walker_nav_menu_start_el»peut égalementfonctionner.I was surprised to see this filter as I had just been reading the nav menu source code and did not notice it. It is in the beta version 3.6.0 but not in the production version 3.5.1. The old filter 'walker_nav_menu_start_el' might also work.
-
J'aiessayé d'ajouter cettefonction dansmon code,maispour une raison quelconque,celane fait rien.Dois-je écrire du code supplémentaire?I've tried adding this function into my code, but for some reason it's not doing anything. Is there additional code I need to write for it?
- 0
- 2013-05-30
- Jake Lisby
-
@JakeLisby Désolé,lepremier code quej'aipubliéne fonctionne que dans la version 3.6.J'aifait unemise àjour avec une alternative.@JakeLisby Sorry, the first code I posted works in 3.6 only. I made an update with an alternative.
- 0
- 2013-06-06
- fuxia
-
- 2017-02-06
c'est dubeautravail.maisje veux unpeuplus,en essayantmaisje nepeuxpasencore comprendre comment.
add_filter( 'nav_menu_link_attributes', 'wpse_100726_extra_atts', 10, 3 ); function wpse_100726_extra_atts( $atts, $item, $args ) { // inspect $item, then … $atts['data-hover'] = 'some value'; return $atts; }
Je veux unemodification de la valeur dunom des éléments demenu.ex data-hover="contactez-nous"
it is nice work. but i want to little bit extra more, trying but can not figure out yet how.
add_filter( 'nav_menu_link_attributes', 'wpse_100726_extra_atts', 10, 3 ); function wpse_100726_extra_atts( $atts, $item, $args ) { // inspect $item, then … $atts['data-hover'] = 'some value'; return $atts; }
i want some value change to menu items name. ex data-hover="contact us"
-
cen'estpas lebonendroitpour demander de l'aide.posez votrepropre question oun'obtenezjamais de réponse.deplus,votre codefonctionnetrèsbien.this is the wrong place to ask for support. ask your own question or never get an answer. besides, your code works just fine.
- 0
- 2019-07-24
- honk31
J'essaie detrouver lameilleurefaçon d'ajouter des attributs demenupersonnalisés sans utiliser deplugin.J'ai un site utilisant unthèmepersonnaliséet je doism'assurer qu'ilest configuré lors de l'activation duthèmeet queje dois également configurer unplugin.
Y a-t-il unefonction à laquelleje peuxme connecterpour cela?