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.3
이 플러그인은 다운로드할 수 있으며 에서 사용할 수 있습니다.