ワードプレスのwp_send_json_error関数の使用方法・解説

概要

wp_send_json_error 関数は、Ajaxリクエストの失敗レスポンスとしてJSON情報を返すために使用されます。この関数は、一般的に以下の状況で使用されます:

  1. AJAXリクエストが失敗した場合
  2. バリデーションエラーを報告する場合
  3. データベース操作の失敗時
  4. ファイルアップロードの失敗時
  5. 適切な権限がない場合
  6. リクエストの条件が満たされていない場合
  7. サーバーエラーをユーザーに通知する場合
  8. その他のビジネスロジックの失敗を通知する場合

構文

wp_send_json_error( $data = null, $status_code = null );

パラメータ

  • $data (任意): エラーに関連する追加情報として返されるデータ。デフォルトは null
  • $status_code (任意): HTTPレスポンスコード。デフォルトは null

戻り値

この関数は、JSON形式のエラーレスポンスを返します。具体的には、エラーステータスとオプションのデータを含む配列をJSONにエンコードします。

関連する関数

使用可能なバージョン

wp_send_json_error はWordPress 3.6以降で使用可能です。

コアファイルのパス

wp-includes/rest-api/endpoints/class-wp-rest-response.php

この関数のアクションでの使用可能性

アクション名 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード 1: 基本的な使用法

add_action('wp_ajax_my_ajax_action', 'my_ajax_function');

function my_ajax_function() {
    // エラーチェック
    if ($_POST['data'] === 'error') {
        wp_send_json_error('An error occurred.');
    }
}

このサンプルコードは、AJAXリクエストでエラーが発生した場合にエラーメッセージをJSON形式で返します。

サンプルコード 2: バリデーションエラーの報告

add_action('wp_ajax_my_form_action', 'handle_my_form');

function handle_my_form() {
    if (empty($_POST['username'])) {
        wp_send_json_error('Username is required.');
    }
    // その他の処理
}

この例では、ユーザー名が空の場合にエラーメッセージを返します。

サンプルコード 3: データベースエラーの処理

add_action('wp_ajax_save_data', 'save_data_function');

function save_data_function() {
    global $wpdb;
    $result = $wpdb->insert('my_table', array('data' => $_POST['data']));
    if ($result === false) {
        wp_send_json_error('Database error occurred.');
    }
}

このサンプルは、データベース挿入が失敗した際にエラーを返すものです。

サンプルコード 4: ファイルアップロードのエラーハンドリング

add_action('wp_ajax_upload_file', 'upload_file_function');

function upload_file_function() {
    if ($_FILES['file']['error'] !== UPLOAD_ERR_OK) {
        wp_send_json_error('File upload failed.');
    }
}

このコードは、ファイルアップロードが失敗した場合にエラーレスポンスを返します。

サンプルコード 5: 権限のチェック

add_action('wp_ajax_check_permission', 'permission_check_function');

function permission_check_function() {
    if (!current_user_can('manage_options')) {
        wp_send_json_error('You do not have permission to perform this action.');
    }
}

この例では、ユーザーが必要な権限を持っていない場合にエラーを返します。

この関数について質問する


上の計算式の答えを入力してください