wp_send_json() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました