REST API: Introduce Menu management endpoints.
This commit introduces the /wp/v2/menus
, /wp/v2/menu-items
and /wp/v2/menu-locations
REST API endpoints. These endpoints are fully available to users with the edit_theme_options
capability, but can be read by any user who can edit a REST API available post type.
The nav_menu
taxonomy and nav_menu_item
post type now map their capabilities to the edit_theme_options
primitive capability. This allows developers to provide more fine-grained access control. However, if a developer is currently dynamically removing the edit_theme_options
capability using map_meta_cap
, they should use the user_has_cap
filter instead.
The wp_update_nav_menu_item()
function has been adjusted to return an error if saving the menu item post or assigning the menu item to a menu generate an error.
Lastly, a new menu item type is introduced, block
, that can be used to store a Block as a menu item.
Props andraganescu, antonvlasenko, dingo_d, dlh, isabel_brison, kadamwhite, Mamaduka, NateWr, noisysocks, peterwilsoncc, ryelle, schlessera, soean, Spacedmonkey, talldanwp, TimothyBlynJacobs, tobifjellner, westonruter, wpscholar, zieladam.
Fixes #40878.