How do you get the current-menu-item ID?

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

Related posts

Leave a Reply

3 comments

  1. 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.

  2. 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 );