¿Cómo obtener el ID del elemento de menú actual?

7 jun 2011, 00:20:39
Vistas: 27.1K
Votos: 3

Estoy tratando de obtener el ID del elemento del menú que tiene la clase "current-menu-item". No el ID de la página actual, sino el ID del elemento de navegación.

Por favor ayuda

1
Comentarios

En una ocasión descubrí cómo obtener el título del elemento actual del menú, deberías poder adaptarlo para que devuelva el ID en su lugar.

Jan Fabry Jan Fabry
7 jun 2011 01:04:12
Todas las respuestas a la pregunta 3
0

Quizás un poco tarde, pero hay una forma más de hacerlo:

$menu = wp_get_nav_menu_items($menu_id,array(
   'posts_per_page' => -1,
   'meta_key' => '_menu_item_object_id',
   'meta_value' => $post->ID // el post actualmente mostrado
));

var_dump($menu[0]->ID);

Dado que los elementos del menú son tipos de post (post-types), puedes usar todos los parámetros de WP-Query, incluso una meta query. El código anterior selecciona todos los menu_items que están conectados al post actual, del menú que especifiques mediante $menu_id.

23 nov 2012 10:28:11
0

Esto debería resolverlo ¿Cómo obtener el título del current-menu-item como variable?

pero cambia

$GLOBALS['wpse16243_title'] = $menu_item->title;

por

$GLOBALS['wpse16243_title'] = $menu_item->ID;

y ahora puedes usar la variable global $wpse16243_title para obtener el ID

7 jun 2011 12:15:26
3

La mejor forma sería usar el filtro nav_menu_css_class. Algo como esto funcionaría:

function wpse19375_nav_class( $classes, $item ){
  if( !in_array( 'current-menu-item', $classes ) )
    return $classes;
  // $item es un objeto 'current-menu-item'.
  return $classes;
}

add_filter( 'nav_menu_css_class', 'wpse19375_nav_class', 10, 2 );
7 jun 2011 00:53:08
Comentarios

gracias compañero, pero no entiendo cómo esto traerá el id

Leroy Leroy
7 jun 2011 12:08:51

La variable $item es el objeto del menú. Contiene toda la información que podrías necesitar, incluyendo el ID.

John P Bloch John P Bloch
7 jun 2011 13:55:48

@John P Bloch, Pero ¿a qué estás devolviendo $classes?

Steven Steven
15 ago 2011 23:07:11