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

Дозволяє перевизначити відповідь REST API. Змінити результат запиту REST до його базової обробки.

Якщо фільтр поверне не порожнє значення , воно буде використано для створення відповіді на REST запит. параметр $result .

Використання

add_filter( 'rest_pre_dispatch', 'wp_kama_rest_pre_dispatch_filter', 10, 3);

/**
 * Function for `rest_pre_dispatch` filter-hook.
 *
 * @param mixed $result Response to replace the requested version with. Може бути будь-який звичайний кінець може відновити, або null для того, щоб запобігти потребі.
 * @param WP_REST_Server $server Server instance.
 * @param WP_REST_Request $request Request використовується для створення відповіді.
 *
 * @return mixed
 */
function wp_kama_rest_pre_dispatch_filter( $result, $server, $request ){

	// Filter...
	return $result;
}
$result
(змішаний)

Відповідь на запит, який замінить дефолтну відповідь сервера REST. Якщо повернути порожнє значення false|null|0|'', то нічого не станеться і REST працюватиме по дефолту. Може бути повернено такі об’єкти:

Це (повернутий) значення буде пропущено через функцію rest_ensure_response() .

$server
(WP_REST_Server)
Примірник сервера.
$request
(WP_REST_Request)
Поточний запит до REST API як об’єкт
WP_REST_Request .

Приклади

0

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

add_filter( 'rest_pre_dispatch', 'close_rest_api_routes', 10, 3);

/**
 * Close REST API routes from public access.
 *
 * @param WP_REST_Response|WP_Error|null $result
 * @param WP_REST_Server $rest_server
 * @param WP_REST_Request $request
 *
 * @return WP_REST_Response|WP_HTTP_Response|WP_Error|null
 */
function close_rest_api_routes( $result, $rest_server, $request ){

	// Maybe authentication error already set
	if( ! is_null( $result ) )
		return $result;

	// only for `/wp/v2` namespace
	if(
		// only for `/wp/v2` namespace
		'/wp/v2' === substr( $request->get_route(), 0, 6 )
		// Administrator
		&&! current_user_can( 'manage_options' )
	) {
		return new WP_Error( 'rest_not_logged_in', 'Your capability is low.', [ 'status' => 401 ] );
	}

	return $result;
}

список змін

З версії 4.4.0Введено.

Де викликається хук

rest_pre_dispatch

rest_pre_dispatch

Де використовується хук у WordPress

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *