Позволяет переопределить ответ REST API. Изменить результат REST запроса до его базовой обработки.

Позволяет переопределить ответ REST API. Изменить результат REST запроса до его базовой обработки.
Click here to view original web page at wp-kama.ru

rest_pre_dispatch хук-фильтр . WP 4.4.0

Если фильтр вернет не пустое значение, то оно будет использовано для создания ответа на REST запрос. См. параметр $result.

Использование

add_filter( 'rest_pre_dispatch', 'filter_function_name_5911', 10, 3 );
function filter_function_name_5911( $result, $server, $request ){
	// filter...

	return $result;
}
$result(смешанный)

Ответ на запрос, который заменить дефолтный ответ REST сервера. Если вернуть пустое значение (false|null|0|''), то ничего не произойдет и REST будет работать по дефолту. Может быть возвращены следующие объекты:

$server(WP_REST_Server)
Экземпляр сервера.
$request(WP_REST_Request)
Текущий запрос к REST API в виде объекта WP_REST_Request.

Примеры

#1 Закроем все маршруты REST от публичного доступа

add_filter( 'rest_pre_dispatch', 'close_rest_routes', 10, 3 );
function close_rest_routes( $result, $rest_server, $request ){

	// maybe authentication error already set
	if( is_null( $result ) && ! current_user_can('manage_options') )
		return new WP_Error( 'rest_not_logged_in', 'Your capability is low.', [ 'status' => 401 ] );

	return $result;
}

Список изменений

Где вызывается хук

Где используется хук в ядре WordPress