plugin-icon

EndPointy Menus

מאת Gunjan Jaswal·
Expose WordPress menus via a custom REST API endpoint for headless and external applications.
גרסה
1.2.0
עודכן לאחרונה
Jun 30, 2026
EndPointy Menus

EndPointy Menus adds custom REST API routes to expose your WordPress navigation menus as JSON.

Base namespace: endpointy-menus/v1

Endpoints:

  • GET /wp-json/endpointy-menus/v1/menus Returns all registered menus with locations and items.

  • GET /wp-json/endpointy-menus/v1/menus/<id> Returns a single menu and its items by menu ID.

  • GET /wp-json/endpointy-menus/v1/menus/slug/<slug> Returns a single menu and its items by menu slug.

  • GET /wp-json/endpointy-menus/v1/locations Returns all registered menu locations with assigned menus.

  • GET /wp-json/endpointy-menus/v1/locations/<location> Returns a menu assigned to a specific location (e.g., 'primary', 'footer').

Query Parameters:

  • nested=true – Returns menu items in a hierarchical tree structure with parent-child relationships. Example: /wp-json/endpointy-menus/v1/menus/2?nested=true

  • meta=true – Adds extra item data: description, attr_title, current flag, featured image URL and post excerpt. Example: /wp-json/endpointy-menus/v1/menus/2?meta=true

  • fields=id,title,url – Returns only the listed fields per item (children are always kept in nested mode). Example: /wp-json/endpointy-menus/v1/menus/2?fields=id,title,url

Parameters can be combined, e.g. ?nested=true&meta=true&fields=id,title,url,children.

Settings (Settings EndPointy Menus):

  • Response caching with a configurable lifetime (transients, auto-flushed when a menu is edited).
  • Optional API-key protection via X-API-Key header or api_key query parameter.
  • CORS allow-list for browser-based consumers.
  • Per-IP rate limiting (requests/minute) with X-RateLimit headers and 429 responses.
  • ETag / Last-Modified conditional requests returning 304 Not Modified.

Developer hooks:

  • endpointy_menus_item filter – modify each formatted menu item before output.

This is useful for headless WordPress setups or any external app that needs to read your menu structure.

Usage

Example requests:

Get all menus: https://your-site.com/wp-json/endpointy-menus/v1/menus

Get single menu by ID: https://your-site.com/wp-json/endpointy-menus/v1/menus/2

Get all menu locations: https://your-site.com/wp-json/endpointy-menus/v1/locations

Get menu by location (e.g., 'primary'): https://your-site.com/wp-json/endpointy-menus/v1/locations/primary

Get nested menu structure: https://your-site.com/wp-json/endpointy-menus/v1/menus/2?nested=true https://your-site.com/wp-json/endpointy-menus/v1/locations/primary?nested=true

Use these URLs directly from your front-end application or API client.

Support the Developer

If you find this plugin useful, you can support the developer:

  • Website: https://gunjanjaswal.me
  • GitHub: https://github.com/gunjanjaswal/Endpointy-Menus
  • Ko-fi: https://ko-fi.com/gunjanjaswal

Contributing

Contributions, issues, and feature requests are welcome! GitHub: https://github.com/gunjanjaswal/Endpointy-Menus Issues: https://github.com/gunjanjaswal/Endpointy-Menus/issues

חינםבתוכניות בתשלום
בביצוע ההתקנה, אנחנו מקבלים את הסכמתך לתנאי השירות של WordPress.com ולתנאים של התוסף של הצד השלישי.
נבדקו עד
WordPress 7.0
תוסף זה זמין להורדה ולשימוש דרך שברשותך.