Im trying to get the id of the menu item that has be class called "current-menu-item". Not the current page id, but the nav item id.
Please help
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.
Sign up to join this communityIm trying to get the id of the menu item that has be class called "current-menu-item". Not the current page id, but the nav item id.
Please help
A little late perhaps, but there is one more way of doing it:
$menu = wp_get_nav_menu_items($menu_id,array(
'posts_per_page' => -1,
'meta_key' => '_menu_item_object_id',
'meta_value' => $post->ID // the currently displayed post
));
var_dump($menu[0]->ID);
Since menu items are post-types you are able to use all the WP-Query params, even a meta query. The code above selects all menu_items which are connected to the current post, from the menu you specify via $menu_id
.
This should solve it How to get current-menu-item title as variable?
but change
$GLOBALS['wpse16243_title'] = $menu_item->title;
to
$GLOBALS['wpse16243_title'] = $menu_item->ID;
and now you can use the global variable $wpse16243_title
to get the ID
The best way would be to use the nav_menu_css_class
filter. Something like this would work:
function wpse19375_nav_class( $classes, $item ){
if( !in_array( 'current-menu-item', $classes ) )
return $classes;
// $item is a 'current-menu-item' object.
return $classes;
}
add_filter( 'nav_menu_css_class', 'wpse19375_nav_class', 10, 2 );
$item
variable is the menu object. It has all the information you could want, including the ID.
Jun 7, 2011 at 10:55