custom-post-types – Eliminar la clase de navegación current_page_parent del índice del blog cuando esté en CPT

Pregunta:

Estoy tratando de eliminar la clase current_page_parent del elemento del menú del índice del blog (obtuve una página personalizada para mostrar todas las publicaciones del blog y está en el menú) al navegar por la página de archivo de tipo de publicación personalizada y las publicaciones de tipo de publicación personalizada.

Encontré preguntas similares pero no sé cómo resolverlo. Además, no tengo el current_page_parent cuando navego por custom_post_type (supongo que está relacionado).

Respuesta:

Puede utilizar el filtro nav_menu_css_class para agregar o eliminar clases de los elementos del menú. A cada elemento del menú individual se le aplicará este filtro. Se pasará una matriz de clases y el objeto del elemento de menú a la función, y return una matriz de las clases que desea que tenga el elemento de menú.

El array_diff de PHP se puede usar para eliminar clases, y la adición de elementos se puede lograr agregando nombres de clase a la matriz a través de $classes[] = 'some-class-name' . Puede usar las Conditional Tags para verificar qué tipo de página se está viendo actualmente para determinar qué necesita agregar o eliminar.

Aquí hay un ejemplo rápido que verifica si la página que se está viendo actualmente es un archivo o una publicación única del tipo your-post-type , y el nombre del elemento del menú es Blog . Si se cumplen esas condiciones, la clase current_page_parent se elimina de la matriz de clases para ese elemento de menú. Puede agregar o modificar esto para sus necesidades.

function wpdev_nav_classes( $classes, $item ) {
    if( ( is_post_type_archive( 'your-post-type' ) || is_singular( 'your-post-type' ) )
        && $item->title == 'Blog' ){
        $classes = array_diff( $classes, array( 'current_page_parent' ) );
    }
    return $classes;
}
add_filter( 'nav_menu_css_class', 'wpdev_nav_classes', 10, 2 );

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım