WP_IS_JSONP_REQUEST() │ WP 5.2.0
Функция WP_IS_JSONP_REQUEST()
проверяет, является ли текущий запрос запросом JSONP или ожидается ли ответ в формате JSONP.
Использует: wp_check_jsonp_callback()
.
Время выполнения:
- 1 раз — 0.000001 сек (скорость света)
- 50000 раз — 0.01 сек (скорость света)
Поддерживаемые версии: PHP 7.3.3, WP 5.2.3
Хуки функции
rest_jsonp_enabled
Возвращаемое значение
Функция возвращает true
или false
. Она возвращает true
, если запрос JSONP, и false
в противном случае.
Использование
Вызов функции выглядит так:
wp_is_jsonp_request();
Примеры
Пример кода для возврата JSONP данных, если это запрос JSONP:
$data = [ 'foo' => 'bar' ];
if ( wp_is_jsonp_request() ) {
header( 'Content-Type: application/javascript; charset=utf-8' );
header( 'X-Content-Type-Options: nosniff' );
header( 'X-Robots-Tag: noindex' );
nocache_headers();
$jsonp_callback = $_GET['_jsonp'];
// Добавление '/**/' для снижения риска JSONP Flash атак.
// https://miki.it/blog/2014/7/8/abusing-jsonp-with-rosetta-flash/
echo '/**/' . $jsonp_callback . '(' . wp_json_encode( $data ) . ')';
}
Изменения
С версии 5.2.0 функция была введена в WordPress.
Код функции WP_IS_JSONP_REQUEST()
Вот, как выглядит код функции:
function wp_is_jsonp_request() {
if ( ! isset( $_GET['_jsonp'] ) ) {
return false;
}
if ( ! function_exists( 'wp_check_jsonp_callback' ) ) {
require_once ABSPATH . WPINC . '/functions.php';
}
$jsonp_callback = $_GET['_jsonp'];
if ( ! wp_check_jsonp_callback( $jsonp_callback ) ) {
return false;
}
/** Этот фильтр задокументирован в wp-includes/rest-api/class-wp-rest-server.php */
$jsonp_enabled = apply_filters( 'rest_jsonp_enabled', true );
return $jsonp_enabled;
}
Связанные функции
- Запрос (Query):
wp_is_json_request()
Вспомогательные функции
__return_empty_array()
__return_empty_string()
__return_false()
__return_null()
__return_true()
__return_zero()
array_key_first()
- ...
(Приведены только некоторые функции для примера. Полный список можно увидеть в документации WordPress.)
Эта статья поможет вам понять, как использовать функцию wp_is_jsonp_request()
и какие функции связаны с ней. Используйте примеры кода, чтобы протестировать работу функции на вашем сайте на WordPress.