WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Рекомендуемые продукты со скидкой от Template Monster

wp_is_jsonp_request() WP 5.2.0

Проверяет, является ли текущий запрос запросом JSONP или ожидает ответа JSONP.

Проверяет наличие GET параметра _jsonp - $_GET['_jsonp']. Значение этого параметра прогоняется через функцию wp_check_jsonp_callback() и, если проверка пройдена, функция вернет true.

Работает на основе: wp_check_jsonp_callback()
✈ 1 раз = 0.000001с = скорость света | 50000 раз = 0.01с = скорость света | PHP 7.3.3, WP 5.2.3
Хуки из функции
Возвращает

true/false.

  • true — когда запрос ожидает JSONP ответ ($_GET['_jsonp'] содержит имя колбэка и оно валидно).
  • false — в остальных случаях.

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

wp_is_jsonp_request();

Примеры

#1 Вернем JSONP данные, если это JSONP запрос

$data = [ 'foo'=>'bar' ];

if( wp_is_json_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'];

	// Prepend '/**/' to mitigate possible JSONP Flash attacks.
	// https://miki.it/blog/2014/7/8/abusing-jsonp-with-rosetta-flash/
	echo '/**/' . $jsonp_callback . '(' . wp_json_encode( $data ) . ')';
}

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

С версии 5.2.0 Введена.

Код wp is jsonp request: wp-includes/load.php WP 5.2.4

<?php
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;
	}

	/** This filter is documented in wp-includes/rest-api/class-wp-rest-server.php */
	$jsonp_enabled = apply_filters( 'rest_jsonp_enabled', true );

	return $jsonp_enabled;

}

Cвязанные функции

Из метки: Запрос (request)

Еще из раздела: Вспомогательные

campusboy 3421youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 7616
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться