web-dev-qa-db-fra.com

Marquer of the menu as a element of the current menu for category

J'ai des catégories sur mon WP site Web. Lorsque les utilisateurs voient ces catégories et les publient, je souhaite marquer l'un des éléments de menu comme étant actif.

Comment puis-je définir un de mes éléments de menu pour qu'il ait la classe "élément de menu actuel" pour cette catégorie et cet article?

1
moonvader

J'utilise ces fonctions. Tout d’abord, vous devez ajouter une classe personnalisée à votre élément de menu (autoriser la saisie de classe dans les options de l’écran, elle n’est pas visible par défaut).

function mark_menu_item_as_active($classes, $item) {

    if( in_array('my-custom-class',$classes) && ( is_category('my-category') /* OR ...*/  ) )   {
        $classes[] = 'current-menu-item';
    }

    return $classes;
}
add_filter('nav_menu_css_class', 'mark_menu_item_as_active', 10, 2);

Cette fonction parcourt tous les éléments de menu et vous trouverez votre élément cible avec cette classe de menu personnalisée. Ensuite, vous vérifierez vos conditions (is_category, ...) et ajouterez une autre classe à ses classes (current-menu-item, ...).

2
Marek