web-dev-qa-db-fra.com

WP Walker utilisant des classes css personnalisées

Afin de faire une navigation (à partir de zéro), j'ai modifié la sortie du promeneur. Actuellement, j'essaie de trouver un moyen d'inclure la "classe CCS facultative" (trouvée dans Apparences -> Menu dans le WP Admin) dans le menu de l'élément de sortie (start_el). Je commence à me demander si c'est possible à ce stade. C'est pourquoi je voudrais votre aide. J'utilise ce tableau pour déterminer si un élément a des enfants ou est actif:

$usedclasses = array(
    (in_array('current-menu-item', $item->classes) ? 'current-menu-item' : ''),
    (in_array('menu-item-has-children', $item->classes) ? 'menu-item-has-children' : ''),
    ($depth % 2 ? 'odd' : 'even')
); $class_names = 'class="' . implode( ' ', $usedclasses ) . '"';

Est-il possible d'ajouter les classes ajoutées personnalisées sans avoir à inclure toutes les classes de fouillis? Donc en essayant d'éviter d'utiliser:

$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
1
Takararyuu

Vous n'êtes pas sûr de vouloir le faire comme ceci, mais juste au cas où, vous pouvez utiliser le filtre nav_menu_css_class:

function my_special_nav_class( $classes, $item ) {

   if ( is_single() && $item->title == 'Blog' ) {
      $classes[] = 'special-class';
   }

   return $classes;

}

add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );

Vous trouverez plus d’exemples ici

1
Benoti