rest_do_request()WP 4.4.0

Выполняет внутренний запрос к маршруту 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

Работает на основе: rest_ensure_request(), rest_get_server()

Хуков нет.

Возвращает

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() WP 7.1

function rest_do_request( $request ) {
	$request = rest_ensure_request( $request );
	return rest_get_server()->dispatch( $request );
}