ajouter une classe personnalisée à wp_nav_menu à l'aide du crochet de filtre nav_menu_css_class

8

J'ai un type de message personnalisé dans mon thème wordpress. Je veux ajouter une classe personnalisée au menu de navigation pour les pages créées dans ce type de message personnalisé. J'ai lu que vous pouvez utiliser un crochet de filtre: "nav_menu_css_class", mais mes côtelettes php sont assez limitées. Comment configurer ce crochet de filtre pour qu'il s'applique uniquement à mes pages de type de message personnalisé dans le menu de navigation et leur donner une classe personnalisée?

Colin
la source

Réponses:

8

voici un exemple simple:

add_filter('nav_menu_css_class', 'auto_custom_type_class', 10, 2 );
function auto_custom_type_class($classes, $item) {

    if ($item->type_label == "CUSTOM_TYPE_NAME"){
        $classes[] = "New_Class";
    }

    return $classes;
}

changez simplement CUSTOM_TYPE_NAMEle nom de votre type de message personnalisé et New_Classle nom de votre classe et collez cet extrait dans le fichier functions.php de votre thème.

Bainternet
la source
Ça marche. Appréciez-le!
Colin
Heureux d'avoir pu aider.
Bainternet
Une autre question: $item->type_labelD'où cela vient-il et y a-t-il d'autres choses que vous pouvez appliquer à cette variable "$ item"?
Colin
1
l'objet $ item est passé par l'appel apply_filters et il contient toutes les variables d'élément. vous pouvez obtenir une liste des en ajoutant quelque part dans la fonctionvar_dump($item);
Bainternet
Wow sympa! (vient de le lancer) Bon à savoir. Merci encore.
Colin