Title: wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php | Developer.WordPress.org

---

# File: wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php

 * hook[rest_menu_read_access](https://developer.wordpress.org/reference/hooks/rest_menu_read_access/)
 * Filters whether the current user has read access to menu items via the REST API.
 * Used by [3 functions](https://developer.wordpress.org/reference/hooks/rest_menu_read_access/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/rest_menu_read_access/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:93](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L93-L93)
 * method[WP_REST_Menu_Items_Controller::prepare_item_for_response()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_item_for_response/)
 * Prepares a single nav menu item output for response.
 * Used by [3 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_item_for_response/#used-by)
   | Uses [12 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_item_for_response/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:508](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L508-L655)
 * hook[rest_prepare_nav_menu_item](https://developer.wordpress.org/reference/hooks/rest_prepare_nav_menu_item/)
 * Filters the menu item data for a REST API response.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/rest_prepare_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/rest_prepare_nav_menu_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:654](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L654-L654)
 * method[WP_REST_Menu_Items_Controller::prepare_links()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_links/)
 * Prepares links for the request.
 * Used by [1 function](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_links/#used-by)
   | Uses [7 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_links/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:665](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L665-L693)
 * method[WP_REST_Menu_Items_Controller::get_schema_links()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_schema_links/)
 * Retrieves Link Description Objects that should be added to the Schema for the
   nav menu items collection.
 * Used by [1 function](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_schema_links/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_schema_links/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:702](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L702-L720)
 * method[WP_REST_Menu_Items_Controller::get_item_schema()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_item_schema/)
 * Retrieves the nav menu item’s schema, conforming to JSON Schema.
 * Used by [3 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_item_schema/#used-by)
   | Uses [8 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_item_schema/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:729](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L729-L941)
 * method[WP_REST_Menu_Items_Controller::get_collection_params()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_collection_params/)
 * Retrieves the query params for the nav menu items collection.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_collection_params/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_collection_params/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:950](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L950-L987)
 * method[WP_REST_Menu_Items_Controller::prepare_items_query()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_items_query/)
 * Determines the allowed query_vars for a get_items() response and prepares them
   for WP_Query.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_items_query/#used-by)
   | Uses [1 function](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_items_query/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:999](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L999-L1020)
 * method[WP_REST_Menu_Items_Controller::get_menu_id()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_menu_id/)
 * Gets the id of the menu that the given menu item belongs to.
 * Used by [1 function](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_menu_id/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_menu_id/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:1030](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L1030-L1038)
 * hook[rest_after_insert_nav_menu_item](https://developer.wordpress.org/reference/hooks/rest_after_insert_nav_menu_item/)
 * Fires after a single menu item is completely created or updated via the REST 
   API.
 * Used by [2 functions](https://developer.wordpress.org/reference/hooks/rest_after_insert_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/rest_after_insert_nav_menu_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:196](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L196-L196)
 * method[WP_REST_Menu_Items_Controller::update_item()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/update_item/)
 * Updates a single nav menu item.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/update_item/#used-by)
   | Uses [11 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/update_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:218](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L218-L282)
 * method[WP_REST_Menu_Items_Controller::delete_item()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/delete_item/)
 * Deletes a single nav menu item.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/delete_item/#used-by)
   | Uses [8 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/delete_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:292](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L292-L332)
 * hook[rest_delete_nav_menu_item](https://developer.wordpress.org/reference/hooks/rest_delete_nav_menu_item/)
 * Fires immediately after a single menu item is deleted via the REST API.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/rest_delete_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/rest_delete_nav_menu_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:329](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L329-L329)
 * method[WP_REST_Menu_Items_Controller::prepare_item_for_database()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_item_for_database/)
 * Prepares a single nav menu item for create or update.
 * Used by [2 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_item_for_database/#used-by)
   | Uses [14 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/prepare_item_for_database/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:343](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L343-L497)
 * hook[rest_pre_insert_nav_menu_item](https://developer.wordpress.org/reference/hooks/rest_pre_insert_nav_menu_item/)
 * Filters a menu item before it is inserted via the REST API.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/rest_pre_insert_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/rest_pre_insert_nav_menu_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:496](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L496-L496)
 * class[WP_REST_Menu_Items_Controller](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/)
 * Core class to access nav items via the REST API.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/#used-by)
   | Uses [1 function](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:17](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L17-L1039)
 * method[WP_REST_Menu_Items_Controller::get_nav_menu_item()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_nav_menu_item/)
 * Gets the nav menu item, if the ID is valid.
 * Used by [6 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_nav_menu_item/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_nav_menu_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:27](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L27-L34)
 * method[WP_REST_Menu_Items_Controller::get_items_permissions_check()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_items_permissions_check/)
 * Checks if a given request has access to read menu items.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_items_permissions_check/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_items_permissions_check/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:44](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L44-L52)
 * method[WP_REST_Menu_Items_Controller::get_item_permissions_check()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_item_permissions_check/)
 * Checks if a given request has access to read a menu item if they have access 
   to edit them.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_item_permissions_check/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/get_item_permissions_check/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:62](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L62-L70)
 * method[WP_REST_Menu_Items_Controller::check_has_read_only_access()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/check_has_read_only_access/)
 * Checks whether the current user has read permission for the endpoint.
 * Used by [2 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/check_has_read_only_access/#used-by)
   | Uses [6 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/check_has_read_only_access/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:82](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L82-L117)
 * method[WP_REST_Menu_Items_Controller::create_item()](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/create_item/)
 * Creates a single nav menu item.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/create_item/#used-by)
   | Uses [14 functions](https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/create_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:127](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L127-L208)
 * hook[rest_insert_nav_menu_item](https://developer.wordpress.org/reference/hooks/rest_insert_nav_menu_item/)
 * Fires after a single menu item is created or updated via the REST API.
 * Used by [2 functions](https://developer.wordpress.org/reference/hooks/rest_insert_nav_menu_item/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/rest_insert_nav_menu_item/#uses)
   | Source: [wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php:166](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php#L166-L166)