/public-wordpress-menus-rest-api

WordPress Custom REST API Plugin

Primary LanguagePHPGNU General Public License v2.0GPL-2.0

Laboratory WordPress Menus Rest API

Generate API Endpoints for WordPress menus.

Available Endpoints

Get Menu Items Endpoint: /wp-json/lab-menus/v1/menu/{menu(string | int)}

Params:

  • menu - Either the slug (string) or ID (int) of a menu e.g.

    • http://example.com/wp-json/lab-menus/v1/menu/main-menu
    • http://example.com/wp-json/lab-menus/v1/menu/2

Return: Array of menu item objects, otherwise false.

[{
  "ID": 48,
  "menu_item_parent": "0",
  "object_id": "46",
  "object": "page",
  "type": "post_type",
  "type_label": "Page",
  "url": "http:\/\/localhost:8888\/example\/test\/",
  "title": "Academics",
  "target": "",
  "attr_title": "",
  "description": "",
  "classes": [""],
  // Rest of the details...,
}]

Get Available Menus Endpoint: /wp-json/lab-menus/v1/menu-options

e.g. http://example.com/wp-json/lab-menus/v1/menu-options

Return: Array of available menus objects.

[{
 "term_id": 3,
  "name": "Example Navigation",
  "slug": "example-navigation",
  "term_group": 0,
  "term_taxonomy_id": 3,
  "taxonomy": "nav_menu",
  "description": "",
  "parent": 0,
  "count": 6,
  "filter": "raw"
}]

Get Registered Menu Locations Endpoint: /wp-json/lab-menus/v1/menu-locations

e.g. http://example.com/wp-json/lab-menus/v1/menu-locations

Return: (Associative Array) Array of menus registered by the theme.

[
  "example-nav": 3,
  "main-navigation": 2,
  "footer-nav": 4
]