Como especificar manualmente a página ativa atual com wp_nav_menu ()

8

Existe uma maneira de especificar manualmente qual página está "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 ao fato de que ainda estou na página "Produtos". Existe uma maneira de corrigir isso?

Obrigado!

Jon

    
por Jon 02.09.2010 / 11:14

3 respostas

10

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 de 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 todo o array $items . Você pode editar as propriedades classes de itens individuais.

    
por Jan Fabry 02.09.2010 / 18:25
2

@Jon Contanto que você esteja usando <body <?php body_class(); ?>> o WordPress atribuirá a classe current_page_item ao seu menu junto com current_page_parent se você usar os menus suspensos.

    
por Chris_O 02.09.2010 / 11:32
0

Jan mencionou o filtro nav_menu_css_class, então eu procurei e este exemplo foi útil para mim Fonte: enlace

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 );
    
por Ross 24.05.2016 / 20:14

Tags