mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-07-01 15:50:09 +00:00
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. git-svn-id: https://develop.svn.wordpress.org/trunk@52079 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -126,16 +126,39 @@ function create_initial_post_types() {
|
||||
register_post_type(
|
||||
'nav_menu_item',
|
||||
array(
|
||||
'labels' => array(
|
||||
'labels' => array(
|
||||
'name' => __( 'Navigation Menu Items' ),
|
||||
'singular_name' => __( 'Navigation Menu Item' ),
|
||||
),
|
||||
'public' => false,
|
||||
'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
|
||||
'hierarchical' => false,
|
||||
'rewrite' => false,
|
||||
'delete_with_user' => false,
|
||||
'query_var' => false,
|
||||
'public' => false,
|
||||
'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
|
||||
'hierarchical' => false,
|
||||
'rewrite' => false,
|
||||
'delete_with_user' => false,
|
||||
'query_var' => false,
|
||||
'map_meta_cap' => true,
|
||||
'capability_type' => array( 'edit_theme_options', 'edit_theme_options' ),
|
||||
'capabilities' => array(
|
||||
// Meta Capabilities.
|
||||
'edit_post' => 'edit_post',
|
||||
'read_post' => 'read_post',
|
||||
'delete_post' => 'delete_post',
|
||||
// Primitive Capabilities.
|
||||
'edit_posts' => 'edit_theme_options',
|
||||
'edit_others_posts' => 'edit_theme_options',
|
||||
'delete_posts' => 'edit_theme_options',
|
||||
'publish_posts' => 'edit_theme_options',
|
||||
'read_private_posts' => 'edit_theme_options',
|
||||
'read' => 'read',
|
||||
'delete_private_posts' => 'edit_theme_options',
|
||||
'delete_published_posts' => 'edit_theme_options',
|
||||
'delete_others_posts' => 'edit_theme_options',
|
||||
'edit_private_posts' => 'edit_theme_options',
|
||||
'edit_published_posts' => 'edit_theme_options',
|
||||
),
|
||||
'show_in_rest' => true,
|
||||
'rest_base' => 'menu-items',
|
||||
'rest_controller_class' => 'WP_REST_Menu_Items_Controller',
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user