Add query params for control over including items and fetching specific menu list #62
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.