Existe-t-il un moyen de spécifier manuellement quelle page est actuellement "active" lors de l'utilisation de wp_nav_menu()
?
J'ai une page "Produits" et sur cette page, j'ai des liens vers diverses taxonomies personnalisées (dynamiques). Lorsque je clique sur l'une de ces taxonomies, je reste sur la page "Produits" mais wp_nav_menu()
perd la référence au fait que je suis toujours sur la page "Produits". Y at-il un moyen que je puisse résoudre ce problème?
Merci!
Jon
Si vous souhaitez simplement ajouter la classe current_page_item
à un élément de menu, vous pouvez vous connecter au filtre nav_menu_css_class
et ajouter cette classe si nécessaire. Cela s'appelle quand le menu est imprimé .
Si vous souhaitez accéder à l'ensemble du menu et ajouter des classes, connectez-vous au filtre wp_get_nav_menu_items
, où vous obtenez le tableau $items
complet. Vous pouvez modifier les propriétés classes
de chaque élément.
@Jon Tant que vous utilisez <body <?php body_class(); ?>>
, WordPress attribuera la classe current_page_item
à votre menu, ainsi que current_page_parent
si vous utilisez les menus déroulants.
Jan a mentionné le filtre nav_menu_css_class. Je l'ai donc consulté et cet exemple m'a été utile. Source: https://codex.wordpress.org/Plugin_API/Filter_Reference/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 );