wp_send_json()
Кодирует переданную переменную в JSON, печатает результат на экран (echo) и обрывает работу скрипта (die). Используется для возврата данных при AJAX запросах.
Функция устанавливает header заголовок:
@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
Работает на основе: wp_json_encode()
Основа для: wp_send_json_success(), wp_send_json_error()
Хуков нет.
Возвращает
null. Прерывает работу скрипта.
Использование
wp_send_json( $response, $status_code, $options );
- $response(строка/массив/число/объект/логический) (обязательный)
- Переменная, обычно массив или объект, которая будет кодирована в JSON.
- $status_code(число)
- HTTP статус код, который нужно установить. Какие бывают статус коды, смотрите здесь. C WP 4.7.
По умолчанию: null - $options(число) (WP 5.6)
Опции которые будут переданы в функцию json_encode(). Битовая маска, составляемая из значений:
JSON_FORCE_OBJECT JSON_HEX_QUOT JSON_HEX_TAG JSON_HEX_AMP JSON_HEX_APOS JSON_INVALID_UTF8_IGNORE JSON_INVALID_UTF8_SUBSTITUTE JSON_NUMERIC_CHECK JSON_PARTIAL_OUTPUT_ON_ERROR JSON_PRESERVE_ZERO_FRACTION JSON_PRETTY_PRINT JSON_UNESCAPED_LINE_TERMINATORS JSON_UNESCAPED_SLASHES JSON_UNESCAPED_UNICODE JSON_THROW_ON_ERROR
Смысл этих констант объясняется на странице JSON констант.
По умолчанию: 0
Примеры
#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
Список изменений
| С версии 3.5.0 | Введена. |
| С версии 4.7.0 | The $status_code parameter was added. |
| С версии 5.6.0 | The $flags parameter was added. |