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

説明

wp_send_json_error() は、失敗を表すJSON(success: false)を出力して処理を終了する関数です。

基本構文

wp_send_json_error( mixed $value = null, int $status_code = null, int $flags = 0 ): void

引数

  • $value:data として返す値
  • $status_code:HTTPステータス
  • $flags:JSONのフラグ

戻り値

戻り値はありません。

使い方(サンプル)

wp_send_json_error( array( 'message' => '失敗しました' ), 400 );

注意点

  • エラー時はHTTPステータスも適切に設定します。

実務での使いどころ

  • Ajaxの処理が、失敗したことを、JSONでJavaScriptへ返すとき(入力の不備、権限なしなど)。

よくあるミスと対処

  • HTTPのステータスコードを、指定していない。権限なしなどは、403 などを指定する。
  • この関数のあとに、処理を書いている。JSONを出力したあと、処理が終了するため、後ろのコードは実行されない。
  • エラーのメッセージに、内部の情報を含めている。

NG例

wp_send_json_error( 'エラー' ); // ステータスコードがなく、HTTPとしては成功(200)になる

OK例

if ( ! current_user_can( 'edit_posts' ) ) {
	wp_send_json_error( array( 'message' => '権限がありません' ), 403 );
}

使い分け早見表

関数 出力する形式
wp_send_json_error() {"success":false,"data":...} の形式で出力する
wp_send_json_success() {"success":true,"data":...} の形式で出力する
wp_send_json() 渡した値を、そのままJSONで出力する

関連項目

wp_send_json_success()、wp_send_json()

公式リファレンス:wp_send_json_error() | Function | WordPress Developer Resources

コメント

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