wp_is_serving_rest_request()
Проверяет, происходит ли запрос к REST API WordPress.
Функция проверяет константу REST_REQUEST. Она не определяет внутренние REST-запросы, которые выполняются во время обработки обычной страницы, например при предварительной загрузке данных.
Функция зависит от глобальной переменной 'REST_REQUEST'.
Функция будет работать только на событии parse_request или позже. До этого момента константа REST_REQUEST ещё не определена.
Используйте wp_is_rest_endpoint(), чтобы также определить внутренний запрос к REST API.
Хуков нет.
Возвращает
bool.
true- WordPress обслуживает отдельный запрос к REST API.false- текущий запрос не является отдельным запросом к REST API.
Использование
wp_is_serving_rest_request();
Примеры
#1 Выполнить код только вне REST API
После определения типа запроса вызывается пользовательское событие kama_regular_request. При отдельном запросе к REST API событие не вызывается.
add_action( 'parse_request', 'kama_handle_regular_request', 10, 0 );
function kama_handle_regular_request() {
if ( wp_is_serving_rest_request() ) {
return;
}
do_action( 'kama_regular_request' );
}
#2 Оставить REST API доступным во время технических работ
Обычные запросы получат ошибку 503, а запросы к REST API продолжат работать.
add_action( 'parse_request', 'kama_enable_maintenance_mode', 10, 0 );
function kama_enable_maintenance_mode() {
if ( wp_is_serving_rest_request() || current_user_can( 'manage_options' ) ) {
return;
}
wp_die(
'Сайт временно недоступен.',
'Технические работы',
[ 'response' => 503 ]
);
}Список изменений
| С версии 6.5.0 | Введена. |
Код wp_is_serving_rest_request() wp is serving rest request WP 7.1.3
function wp_is_serving_rest_request() {
return defined( 'REST_REQUEST' ) && REST_REQUEST;
}