WP_REST_Global_Styles_Controller::get_theme_item_permissions_check
Checks if a given request has access to read a single theme global styles config.
Method of the class: WP_REST_Global_Styles_Controller{}
No Hooks.
Returns
true|WP_Error. True if the request has read access for the item, WP_Error object otherwise.
Usage
$WP_REST_Global_Styles_Controller = new WP_REST_Global_Styles_Controller(); $WP_REST_Global_Styles_Controller->get_theme_item_permissions_check( $request );
- $request(WP_REST_Request) (required)
- Full details about the request.
Changelog
| Since 5.9.0 | Introduced. |
| Since 6.7.0 | Allow users with edit post capabilities to view theme global styles. |
WP_REST_Global_Styles_Controller::get_theme_item_permissions_check() WP REST Global Styles Controller::get theme item permissions check code WP 7.0
public function get_theme_item_permissions_check( $request ) {
/*
* Verify if the current user has edit_posts capability.
* This capability is required to view global styles.
*/
if ( current_user_can( 'edit_posts' ) ) {
return true;
}
foreach ( get_post_types( array( 'show_in_rest' => true ), 'objects' ) as $post_type ) {
if ( current_user_can( $post_type->cap->edit_posts ) ) {
return true;
}
}
/*
* Verify if the current user has edit_theme_options capability.
*/
if ( current_user_can( 'edit_theme_options' ) ) {
return true;
}
return new WP_Error(
'rest_cannot_read_global_styles',
__( 'Sorry, you are not allowed to access the global styles on this site.' ),
array(
'status' => rest_authorization_required_code(),
)
);
}