Cómo especificar manualmente la página activa actual con wp_nav_menu ()
-
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
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 );