We use the plugin on a few sites that have a lot of menus, so it isn't always efficient to get all of them with /menus but it also wouldn't be very efficient to get them all with individual REST calls. So, we've modified the plugin to support parameters on the /menus route that allow us to define the menus we want and whether the API should also return the items from those menus.
So, you can call this and get Menus 38, 475 and 832 along with all the items assigned to them:
/wp-json/wp-api-menus/v2/menus?include=38,475,832&include_menu_items=true
You can also fetch Menu 38 using the /menus/<id> route but get it's top-level data without including the nav items:
/wp-json/wp-api-menus/v2/menus/38?include_menu_items=false
These two tweaks have let us have a lot more control over what data we load and when (especially useful in scenarios using GraphQL)
I believe this is fully backward compatible and properly defaults to current behaviors so we don't break existing queries.
We use the plugin on a few sites that have a lot of menus, so it isn't always efficient to get all of them with
/menus
but it also wouldn't be very efficient to get them all with individual REST calls. So, we've modified the plugin to support parameters on the/menus
route that allow us to define the menus we want and whether the API should also return the items from those menus.So, you can call this and get Menus 38, 475 and 832 along with all the items assigned to them:
/wp-json/wp-api-menus/v2/menus?include=38,475,832&include_menu_items=true
You can also fetch Menu 38 using the
/menus/<id>
route but get it's top-level data without including the nav items:/wp-json/wp-api-menus/v2/menus/38?include_menu_items=false
These two tweaks have let us have a lot more control over what data we load and when (especially useful in scenarios using GraphQL)
I believe this is fully backward compatible and properly defaults to current behaviors so we don't break existing queries.