J'essaie de trouver le meilleur moyen d'ajouter des attributs de menu personnalisés sans utiliser de plug-in. J'ai un site utilisant un thème personnalisé et je dois m'assurer qu'il est configuré lors de l'activation du thème par rapport à la nécessité de configurer un plugin.
Existe-t-il une fonction à laquelle je peux me connecter?
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;
}
Cela fonctionne avec 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 );
});
c'est du beau travail. mais je veux un peu plus, en essayant mais je ne peux pas encore 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 un changement de valeur pour le nom des éléments de menu. ex data-hover = "nous contacter"