Deseja adicionar a classe ancestral a posts únicos? Quando você abre uma página de post único (ou seja, single.php), não obtém nenhuma classe current_page_item
ou current-page-ancestor
em seu wp_nav_menu
. Também não é possível informar aos usuários em que seção eles estão no momento.
Instruções:
Tudo o que você precisa fazer é adicionar esse código ao arquivo functions.php do seu tema ou em um plug-in específico do site:
<?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); ?>
Se o nome genérico nos rótulos não corresponder ao título da página, ele não adicionará a classe.
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar/colar corretamente trechos de código no WordPress, para não danificar acidentalmente seu site.
Se você gostou desse snippet de código, considere dar uma olhada em nossos outros artigos no site, como: 7 melhores serviços de VPN para usuários do WordPress e 12 melhores plugins de podcast do WordPress.
Can you put the code on this page? I can’t see it…
Updated!