wp_send_json( mixed $response, int $status_code = null, int $options )
Sends a JSON response back to an Ajax request.
Parameters
-
$response
mixed Required -
Variable (usually an array or object) to encode as JSON, then print and die.
-
$status_code
int Optional -
The HTTP status code to output.
Default:
null
-
$options
int Optional -
Options to be passed to json_encode(). Default 0.
Source
File: wp-includes/functions.php
.
View all references
function wp_send_json( $response, $status_code = null, $options = 0 ) {
if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
_doing_it_wrong(
__FUNCTION__,
sprintf(
/* translators: 1: WP_REST_Response, 2: WP_Error */
__( 'Return a %1$s or %2$s object from your callback when using the REST API.' ),
'WP_REST_Response',
'WP_Error'
),
'5.5.0'
);
}
if ( ! headers_sent() ) {
header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
if ( null !== $status_code ) {
status_header( $status_code );
}
}
echo wp_json_encode( $response, $options );
if ( wp_doing_ajax() ) {
wp_die(
'',
'',
array(
'response' => null,
)
);
} else {
die;
}
}
Changelog
Version | Description |
---|---|
5.6.0 | The $options parameter was added. |
4.7.0 | The $status_code parameter was added. |
3.5.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
NOTE: not need to include wp_die() or exit(0) after using wp_send_json() as it automatically calls wp_die().
If this is a REST response (i.e. via the REST API), use WP_REST_Response or WP_Error, instead.