WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

wp_send_json() WP 3.5.0

Кодирует переданную переменную в JSON, печатает результат на экран (echo) и обрывает работу скрипта (die). Используется для возврата данных при AJAX запросах.

Функция устанавливает header заголовок:

@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
Используется в: wp_send_json_success(), wp_send_json_error().
Работает на основе: wp_json_encode()

Хуков нет.

Возвращает

Прерывает работу скрипта.

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

wp_send_json( $response, $status_code );
$response(строка/массив/число/объект/логический) (обязательный)
Переменная, обычно массив или объект, которая будет кодирована в JSON.
$status_code(число)
HTTP статус код, который нужно установить. Какие бывают статус коды, смотрите здесь. C WP 4.7.
По умолчанию: null

Примеры

#1 Пример отправки Ajax запроса и возврат JSON результата

Этот код отправляет AJAX запрос на страницу плагина 'ajax/save_field.php'

jQuery(document).ready(function(){

	jQuery('#btn_save').click(function(e){
		e.preventDefault();
		jQuery.post( pluginUrl+'ajax/save_field.php', jQuery('#my-form').serialize(), function(data) {                        
				alert(data.message + " ID:" + data.ID);
				//This will alert "Saved ID:1"
		});
	});

});

Это код файла, который принимает запрос. Тут используется wp_send_json() для того, чтобы удобно вернуть результат в JSON формате:

<?php
// подгружаем WP
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );

$nonce = $_POST['_wpnonce_name'];
if( empty($_POST) || ! wp_verify_nonce($nonce, 'my-nonce') ) die('Security check');

$return = array(
	'message'   => 'Сохранено',
	'ID'        => 1
);

wp_send_json( $return );

// функция сама прерывает работу скрипта
// поэтому тут не нужны всякие die или exit

Код wp send json: wp-includes/functions.php WP 4.8.1

<?php
function wp_send_json( $response, $status_code = null ) {
	@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
	if ( null !== $status_code ) {
		status_header( $status_code );
	}
	echo wp_json_encode( $response );

	if ( wp_doing_ajax() ) {
		wp_die( '', '', array(
			'response' => null,
		) );
	} else {
		die;
	}
}

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

Из метки: _json для ajax

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

wp_send_json Комментариев нет

Здравствуйте, !

Ваш комментарий