Make WordPress Core


Ignore:
Timestamp:
11/09/2021 06:58:59 PM (3 years ago)
Author:
TimothyBlynJacobs
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/rest-api/rest-schema-setup.php

    r52069 r52079  
    9090            '/wp/v2/posts/(?P<id>[\\d]+)/autosaves',
    9191            '/wp/v2/posts/(?P<parent>[\\d]+)/autosaves/(?P<id>[\\d]+)',
     92            '/wp/v2/menu-items',
     93            '/wp/v2/menu-items/(?P<id>[\d]+)',
     94            '/wp/v2/menu-items/(?P<id>[\d]+)/autosaves',
     95            '/wp/v2/menu-items/(?P<parent>[\d]+)/autosaves/(?P<id>[\d]+)',
     96            '/wp/v2/menu-locations',
     97            '/wp/v2/menu-locations/(?P<location>[\w-]+)',
     98            '/wp/v2/menus',
     99            '/wp/v2/menus/(?P<id>[\d]+)',
    92100            '/wp/v2/pages',
    93101            '/wp/v2/pages/(?P<id>[\\d]+)',
Note: See TracChangeset for help on using the changeset viewer.