Existe uma maneira de especificar manualmente qual página está atualmente "ativa" ao usar wp_nav_menu()
?
Eu tenho uma página "Produtos" e, nessa página, tenho links para várias taxonomias personalizadas (dinâmicas). Quando clico em uma dessas taxonomias, fico na página "Produtos", mas wp_nav_menu()
perde a referência a esse fato de que ainda estou na página "Produtos". Existe uma maneira que eu possa consertar isso?
Obrigado!
Jon
Se você quiser apenas adicionar a classe current_page_item
a um item de menu, poderá conectar-se ao filtro nav_menu_css_class
e adicionar essa classe, se necessário. É chamado quando o menu é impresso .
Se você quiser acessar o menu inteiro e adicionar classes, conecte-se ao filtro wp_get_nav_menu_items
, onde você obtém o array $items
inteiro. Você pode editar as propriedades classes
de itens individuais.
@Jon Enquanto você estiver usando <body <?php body_class(); ?>>
WordPress atribuirá a classe current_page_item
ao seu menu junto com current_page_parent
se você estiver usando menus suspensos.
Jan mencionou o filtro nav_menu_css_class, então eu procurei e este exemplo foi útil para mim Fonte: https://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class
function my_special_nav_class( $classes, $item ) {
if ( is_single() && $item->title == 'Blog' ) {
$classes[] = 'special-class';
}
return $classes;
}
add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );