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 $options parameter was added. |