説明
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

コメント