wp_send_json()
Кодує передану змінну JSON, друкує результат на екран (echo) і обриває роботу скрипта (die). Використовується для повернення даних при запитах AJAX.
Функція встановлює header заголовок:
@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
Працює на основі:
wp_json_encode()
wp_json_encode()
Хуків немає.
Повертає
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 | $status_code parameter був added. |
З версії 5.6.0 | The $options parameter був added. |