¿Quieres añadir la clase ancestor a las entradas individuales? Cuando abres una página de entrada única (es decir, single.php), no obtienes ninguna clase current_page_item
o current-page-ancestor
en tu wp_nav_menu
. Tampoco puede indicar a sus usuarios en qué sección se encuentran actualmente.
Instrucciones:
Todo lo que tienes que hacer es añadir este código al archivo functions.php de tu tema o en un plugin específico del sitio:
<?php function add_single_post_ancestor_nav_class($classes, $item){ global $post; $is_ancestor = false; if ( is_single() ) { if ( $post->post_type != 'post' ) { // Checks if the custom-post-type label name matches the title of the nav-page-item $post_type_obj = get_post_type_object($post->post_type); $post_type_labels = $post_type_obj->labels; $post_type_name = $post_type_labels->name; if( $item->title == $post_type_name ) { $is_ancestor = true; } } else { // Checks if one of the single-post categories matches the title of the nav-page-item $categories = get_categories(); foreach ( $categories as $category ) { if ( in_category($category->name) && $item->title == $category->name ) { $is_ancestor = true; } } } if( $is_ancestor ){ $classes[] = 'current-page-ancestor'; } } return $classes; } add_filter('nav_menu_css_class' , 'add_single_post_ancestor_nav_class' , 10 , 2); ?>
Si el nombre genérico de las etiquetas no coincide con el título de la página, no se añadirá la clase.
Nota: Si es la primera vez que añade fragmentos de código en WordPress, consulte nuestra guía sobre cómo copiar / pegar correctamente fragmentos de código en WordPress, para no romper accidentalmente su sitio.
Si te ha gustado este fragmento de código, por favor considere revisar nuestros otros artículos en el sitio como: 7 mejores servicios VPN para usuarios de WordPress y 12 mejores plugins de podcast para WordPress.
Can you put the code on this page? I can’t see it…
Updated!