agregar clase personalizada a wp_nav_menu usando el gancho de filtro nav_menu_css_class

8

Tengo un tipo de publicación personalizada en mi tema de WordPress. Quiero agregar una clase personalizada al menú de navegación para las páginas creadas en ese tipo de publicación personalizada. Leí que puedes usar un gancho de filtro: "nav_menu_css_class", pero mis php chops son bastante limitadas. ¿Cómo configuro ese enlace de filtro para aplicarlo solo a mis páginas de tipo de publicación personalizada en el menú de navegación y darles una clase personalizada?

Colin
fuente

Respuestas:

8

Aquí hay un ejemplo 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;
}

simplemente cambie CUSTOM_TYPE_NAMEel nombre de su tipo de publicación personalizada y New_Classcon el nombre de su clase y pegue este fragmento en el archivo functions.php de su tema.

Bainternet
fuente
Eso funciona. ¡Lo aprecio!
Colin
Me alegro de poder ayudar.
Bainternet
Otra pregunta: $item->type_label¿De dónde viene esto y hay otras cosas que puede aplicar a esta variable "$ item"?
Colin
1
el objeto $ item es pasado por la llamada apply_filters y contiene todas las variables del artículo. puede obtener una lista de las agregando en algún lugar de la funciónvar_dump($item);
Bainternet
¡Dulce! (solo lo ejecuté) Es bueno saberlo. Gracias de nuevo.
Colin