rest_do_request()
Performs an internal request to a REST API route through WP_REST_Server{}.
The request runs inside the current PHP process without an HTTP request to the site. The server finds the route, validates and sanitizes parameters, calls permission_callback, and then runs the route callback.
REST API errors are also represented by a WP_REST_Response object. Check them with is_error().
See also “How to make internal REST requests”: https://wp-kama.ru/handbook/rest/usage/internal-requests
No Hooks.
Returns
WP_REST_Response.
- WP_REST_Response - the REST API response, which may contain a successful result or an error.
Usage
rest_do_request( $request );
- $request(WP_REST_Request|string) (required)
A request object or REST route, for example
/wp/v2/posts.If a string is passed, it is used as a GET route. Create a WP_REST_Request{} for another HTTP method, parameters, or headers.
Examples
#1 Performing an Internal REST Request
We will get the five latest posts via WordPress’s standard REST route.
$request = new WP_REST_Request( 'GET', '/wp/v2/posts' );
$request->set_param( 'per_page', 5 );
$response = rest_do_request( $request );
if ( $response->is_error() ) {
$error = $response->as_error();
wp_die( esc_html( $error->get_error_message() ) );
}
$posts = $response->get_data();
Changelog
| Since 4.4.0 | Introduced. |
rest_do_request() rest do request code WP 7.0.4
function rest_do_request( $request ) {
$request = rest_ensure_request( $request );
return rest_get_server()->dispatch( $request );
}