I'm trying to get the current menu item ID. I hve found one thread that has put me on the right track: How to get current-menu-item title as variable?
This is the code I use in my function.php file:
add_filter( 'wp_nav_menu_objects', 'current_wp_nav_menu_object' );
function current_wp_nav_menu_object( $sorted_menu_items )
{
foreach ( $sorted_menu_items as $menu_item ) {
if ( $menu_item->current ) {
$GLOBALS['current_menu_title'] = $menu_item->title;
$_SESSION['current_menu_title'] = $menu_item->title;
break;
}
}
return $sorted_menu_items;
}
But there is one annoying problem. The data stores is always the last clicked menu item, not the current clicked menu item.
Let'ssay I have the following menu items:
- Item 1
- Item 2
- Item 3
- Item 4
(I use echo $_SESSION['current_menu_title']
to see the result)
Clicking the menu items in the following order, gives me the following results:
Item 1 -> no output
Item 2 -> outputs Item 1
Item 4 -> outputs Item 2
Item 1 -> outputs Item 4
Why isn't the current clicked menu item outputted?
var_dump( $var );
the variables at the top of the function ($items, $menu, $args
) and take a look in what they provide.