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?

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.


Ç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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.