=== Laboratory WordPress Menus Rest API === Contributors: ricardoLabs Donate link: https://chiedolabs.com Tags: menus, api Requires at least: 4.7.1 Requires PHP: 7.2 Tested up to: 4.9.8 Stable tag: 4.9.8 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html # Laboratory WordPress Menus Rest API Generate API Endpoints for WordPress menus. ## Installation This plugin can be installed directly from your site. * Log in and navigate to Plugins → Add New. * Type “Laboratory WordPress Menus Rest API” into the Search and hit Enter. * Locate the Laboratory WordPress Menus Rest API plugin in the list of search results and click Install Now. * Once installed, click the Activate link. * Your endpoints will automatically be available. It can also be installed manually. * Download the Laboratory WordPress Menus Rest API plugin from WordPress.org. * Unzip the package and move to your plugins directory. * Log into WordPress and navigate to the Plugins screen. * Locate Laboratory WordPress Menus Rest API in the list and click the Activate link. ## 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
]