wp_send_json()

Отправляет JSON-ответ на запрос Ajax
Функция WordPress
INT 3.5.0
WordPress Icon

Описание функции

Функция wp_send_json() используется для отправки ответа в формате JSON на запрос Ajax. Она кодирует переменную (обычно массив или объект) в формат JSON, выводит его и завершает выполнение скрипта.

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

wp_send_json( mixed $response, int $status_code = null, int $options )

Функция wp_send_json() принимает три параметра:

  • $response (обязательный) — переменная (обычно массив или объект), которую нужно закодировать в JSON, вывести и завершить выполнение скрипта.
  • $status_code (необязательный) — код состояния HTTP, который будет отправлен вместе с ответом. По умолчанию равен null.
  • $options (необязательный) — дополнительные параметры, которые будут переданы в функцию json_encode(). По умолчанию равен 0.

$data = array(
  'name' => 'John',
  'age' => 30,
  'city' => 'New York'
);
// Отправляем данные в формате JSON и завершаем выполнение скрипта
wp_send_json( $data, 200, JSON_PRETTY_PRINT );

В приведенном выше примере мы создаем массив данных $data, содержащий информацию о человеке. Затем мы используем функцию wp_send_json() для отправки этого массива в формате JSON с кодом состояния HTTP 200 и дополнительным параметром JSON_PRETTY_PRINT, который делает вывод JSON более читабельным.

Примеры использования

Отправка данных на сервер


$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);
wp_send_json( $data );

В данном примере мы создаем ассоциативный массив $data, содержащий информацию о пользователе. Затем мы используем функцию wp_send_json() для отправки этого массива на сервер в формате JSON. Функция автоматически кодирует массив в JSON, выводит его и завершает выполнение скрипта.

Обработка данных на сервере


$data = json_decode( file_get_contents( 'php://input' ) );
// Обработка данных
$response = array(
    'status' => 'success',
    'message' => 'Data processed successfully'
);
wp_send_json( $response );

В этом примере мы получаем данные, отправленные на сервер в формате JSON, с помощью функции file_get_contents() и json_decode(). Затем мы обрабатываем эти данные и создаем массив $response с информацией о статусе обработки данных. Наконец, мы используем функцию wp_send_json() для отправки этого массива на сервер в формате JSON.

Отправка ошибки на сервер


$error = array(
    'status' => 'error',
    'message' => 'Invalid request'
);
wp_send_json( $error, 400 );

В данном примере мы создаем массив $error с информацией об ошибке. Затем мы используем функцию wp_send_json() для отправки этого массива на сервер в формате JSON с указанием статуса ошибки 400 (Bad Request).

Получение данных с сервера

Функция wp_send_json() используется для отправки данных с сервера, поэтому нет прямого примера получения данных с сервера с использованием этой функции.

Использование опций при кодировании JSON


$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);
$options = JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE;
wp_send_json( $data, null, $options );

В этом примере мы создаем ассоциативный массив $data, содержащий информацию о пользователе. Затем мы используем функцию wp_send_json() для отправки этого массива на сервер в формате JSON с использованием опций JSON_PRETTY_PRINT и JSON_UNESCAPED_UNICODE. Опция JSON_PRETTY_PRINT обеспечивает красивое форматирование JSON, а опция JSON_UNESCAPED_UNICODE позволяет сохранить все символы в юникоде без экранирования.

Вопросы и ответы

Как передать массив данных в функцию wp_send_json()?

Функция wp_send_json() используется для отправки JSON-ответа на Ajax-запрос. Чтобы передать массив данных в эту функцию, необходимо передать его в качестве аргумента $response. Обычно это массив или объект, который будет закодирован в JSON, затем выведен и завершит выполнение скрипта.

Пример кода:


$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);
wp_send_json( $data );

Как установить HTTP статус код при использовании wp_send_json()?

При использовании функции wp_send_json() можно установить HTTP статус код, указав его в качестве второго аргумента $status_code. По умолчанию этот аргумент равен null.

Пример кода:


$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);
wp_send_json( $data, 200 );

Какие опции можно передать в функцию wp_send_json()?

В функцию wp_send_json() можно передать опции, которые будут переданы в функцию json_encode(). Эти опции указываются в качестве третьего аргумента $options. По умолчанию этот аргумент равен 0.

Пример кода:


$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);
$options = JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE;
wp_send_json( $data, null, $options );

Как обработать ошибку при использовании wp_send_json()?

Если при использовании функции wp_send_json() происходит ошибка, то можно обработать ее следующим образом:


$response = array(
    'error' => 'Ошибка при выполнении запроса'
);
wp_send_json($response);

Можно ли использовать wp_send_json() вне Ajax запросов?

Нет, функция wp_send_json() предназначена только для отправки JSON-ответа на Ajax запросы.

Какой формат данных поддерживает wp_send_json()?

Функция wp_send_json() поддерживает кодирование в формат JSON для переменных типа массив или объект.

Пример использования:


$response = array(
    'name' => 'John Doe',
    'age' => 30
);
wp_send_json($response);

Какие данные можно передать в функцию wp_send_json()?

Функция wp_send_json() принимает один обязательный параметр $response, который представляет собой переменную (обычно массив или объект), которую необходимо закодировать в формат JSON, а затем вывести и завершить выполнение скрипта.

Какие преобразования происходят при использовании wp_send_json()?

Функция wp_send_json() преобразует переданные данные в формат JSON с помощью функции json_encode() и выводит их в ответ на Ajax-запрос. При этом можно передать необязательный параметр $status_code, который определяет HTTP-код ответа. По умолчанию он равен null. Также можно передать необязательный параметр $options, который позволяет передать дополнительные опции в функцию json_encode(). По умолчанию он равен 0.

Какие альтернативы есть для функции wp_send_json()?

Вместо функции wp_send_json() можно использовать функцию wp_send_json_success() для отправки успешного JSON-ответа или функцию wp_send_json_error() для отправки JSON-ответа с ошибкой. Эти функции также принимают параметры $response, $status_code и $options.

Функция wp_send_json() позволяет отправить JSON-ответ на Ajax-запрос. Она принимает переменную, которую необходимо закодировать в JSON, и выводит ее в ответ на запрос. При необходимости можно указать HTTP-код ответа и дополнительные опции для кодирования JSON. Вместо wp_send_json() также можно использовать функции wp_send_json_success() и wp_send_json_error() для отправки успешного или ошибочного JSON-ответа соответственно.

Связанные элементы

  • Функция wp_send_json_success(): отправляет успешный JSON-ответ с заданным содержимым.
  • Функция wp_send_json_error(): отправляет JSON-ответ с ошибкой и заданным содержимым.
Обсуждение