WordPress : Comment ajouter nav_menu_css_class personnalisé à certains menus uniquement ?
Je souhaite ajouter une classe CSS personnalisée aux éléments de menu. Jusqu’à présent, je l’ai fait fonctionner en utilisant le crochet de filtre nav_menu_css_class
. Cependant, je souhaite ajouter cette classe aux éléments d’un menu spécifique uniquement. Alors, à quoi doit ressembler une condition pour affecter un menu spécifique (par exemple, ‘custom-menu’ dans theme_location ‘footer_menu’) uniquement ?
function add_footer_nav_item_class( $classes, $item ) {
// I am looking for a condition here
if ($item belongs to 'custom-menu'){
$classes[] = "footer--menu-item";
return $classes;
}
}
add_filter( 'nav_menu_css_class' , 'add_footer_nav_item_class' , 10, 2 );
Solution n°1 trouvée
Vous avez juste besoin du troisième argument $args
, dont l’une des propriétés est theme_location
:
function wpse_218377_nav_menu_css_class( $classes, $item, $args ) {
if ( ! empty( $args->theme_location ) && $args->theme_location === 'custom-menu' ) {
$classes[] = 'footer--menu-item';
}
// ALWAYS return, not from inside the if
return $classes;
}
add_filter( 'nav_menu_css_class' , 'wpse_218377_nav_menu_css_class' , 10, 3 );
0 commentaire