説明
wp_send_json() は、JSONを出力して処理を終了する関数です。Ajaxのレスポンスに使います。
基本構文
wp_send_json( mixed $response, int $status_code = null, int $flags = 0 ): void
引数
$response:出力するデータ$status_code:HTTPステータスコード$flags:json_encodeのフラグ
戻り値
戻り値はありません(die します)。
使い方(サンプル)
wp_send_json( array( 'ok' => true ) );
注意点
- 出力後に自動で処理が終了します。
- 成功/失敗の形式を揃えるなら、
wp_send_json_success()/wp_send_json_error()が便利です。
実務での使いどころ
- Ajaxの処理で、結果を、JSONでJavaScriptへ返すとき。
- 独自のエンドポイントで、JSONを出力するとき。
よくあるミスと対処
- この関数のあとに、処理を書いている。JSONを出力したあと、処理が終了(
wp_die())するため、後ろのコードは実行されない。 - すでに出力を始めたあとで呼ぶと、先に出力された内容がJSONに混ざり、JSONが壊れる(ヘッダーも設定されない)。REST APIのコールバックでは、使わず、
WP_REST_ResponseやWP_Errorを返す。 - 成功・失敗の形式を、自分で決めている。決まった形式なら、
wp_send_json_success()・wp_send_json_error()が便利。
NG例
wp_send_json( array( 'ok' => true ) );
update_option( 'done', 1 ); // 実行されない
OK例
update_option( 'done', 1 );
wp_send_json( array( 'ok' => true ) );
使い分け早見表
| 関数 | 出力する形式 |
|---|---|
wp_send_json() |
渡した値を、そのままJSONで出力する |
wp_send_json_success() |
{"success":true,"data":...} の形式で出力する |
wp_send_json_error() |
{"success":false,"data":...} の形式で出力する |
関連項目
wp_send_json_success()、wp_send_json_error()
公式リファレンス:wp_send_json() | Function | WordPress Developer Resources

コメント