Skip to content

Add query params for control over including items and fetching specific menu list #62

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

acafourek
Copy link

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.

When a taxonomy or custom link is the menu item, get_post will return false and accessing the post_name object would raise a PHP error
- Flip include items for backward compatibility with /menus/<id> route
- Merge Nav object data with item data to make sure we return all the fields the current source plugin does
Fix mistakenly changed object slug
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant