wp_is_json_request()WP 5.0.0

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

Проверяются следующие условия:

false !== strpos( $_SERVER['HTTP_ACCEPT'], 'application/json' )
// или
'application/json' === $_SERVER['CONTENT_TYPE']
1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.02 сек (скорость света) | PHP 7.2.5, WP 5.0

Хуков нет.

Возвращает

true|false.

  • true — когда запрос ожидает JSON ответ ($_SERVER['HTTP_ACCEPT'] или $_SERVER['CONTENT_TYPE'] содержат application/json).
  • false — в остальных случаях.

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

wp_is_json_request();

Примеры

0

#1 Вернем JSON данные когда запрос их ожидает

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

if( wp_is_json_request() ){
	echo json_encode( $data );
}
else {
	echo serialize( $data );
}

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

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

Код wp_is_json_request() WP 6.6.2

function wp_is_json_request() {
	if ( isset( $_SERVER['HTTP_ACCEPT'] ) && wp_is_json_media_type( $_SERVER['HTTP_ACCEPT'] ) ) {
		return true;
	}

	if ( isset( $_SERVER['CONTENT_TYPE'] ) && wp_is_json_media_type( $_SERVER['CONTENT_TYPE'] ) ) {
		return true;
	}

	return false;
}