rest_do_request()
Выполняет внутренний запрос к маршруту REST API через WP_REST_Server{}.
Запрос выполняется внутри текущего PHP-процесса без HTTP-обращения к сайту. Сервер находит маршрут, проверяет и очищает параметры, вызывает permission_callback, затем запускает callback маршрута.
Ошибка REST API также представлена объектом WP_REST_Response. Проверяйте её методом is_error().
См. также "Как делать внутренние REST запросы": https://wp-kama.ru/handbook/rest/usage/internal-requests
Хуков нет.
Возвращает
WP_REST_Response.
- WP_REST_Response - ответ REST API. Может содержать успешный результат или ошибку.
Использование
rest_do_request( $request );
- $request(WP_REST_Request|string) (обязательный)
Объект запроса или путь REST-маршрута, например
/wp/v2/posts.Если передать строку, она используется как маршрут GET-запроса. Для другого HTTP-метода, параметров или заголовков нужно создать объект WP_REST_Request{}.
Примеры
#1 Выполнение внутреннего REST-запроса
Получим пять последних записей через стандартный REST-маршрут WordPress.
$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();Список изменений
| С версии 4.4.0 | Введена. |
Код rest_do_request() rest do request WP 7.1
function rest_do_request( $request ) {
$request = rest_ensure_request( $request );
return rest_get_server()->dispatch( $request );
}