Cómo especificar manualmente la página activa actual con wp_nav_menu ()

wordpress.stackexchange https://wordpress.stackexchange.com/questions/1230

  •  16-10-2019
  •  | 
  •  

Pregunta

¿Hay una manera de especificar manualmente qué página está "activa" cuando se utiliza wp_nav_menu()?

tengo una "Productos", y en esa página que tiene enlaces a varias taxonomías (dinámico) personalizados. Cuando hago clic en una de estas taxonomías, me quedo en la página "productos", pero pierde wp_nav_menu() referencia al hecho de que todavía estoy en la página "productos". ¿Hay alguna manera de solucionar este problema?

Gracias!

Jon

¿Fue útil?

Solución

Si lo que desea es añadir la clase current_page_item a un elemento de menú, se podría conectar al filtro nav_menu_css_class, y añadir esa clase si es necesario. Se llama cuando el menú se imprime .

Si desea acceder a todo el menú y agregar clases, gancho para el filtro wp_get_nav_menu_items, donde se obtiene toda la gama $items. Puede editar las propiedades classes de artículos individuales.

Otros consejos

@ Jon Mientras usted está utilizando WordPress <body <?php body_class(); ?>> asignará el current_page_item clase a su menú junto con current_page_parent si el uso de los menús desplegables.

Jan mencionado filtro nav_menu_css_class, así que miré hacia arriba y este ejemplo era útil para mí Fuente: 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 );
Licenciado bajo: CC-BY-SA con atribución
scroll top