概要
wp_send_json_error
関数は、Ajaxリクエストの失敗レスポンスとしてJSON情報を返すために使用されます。この関数は、一般的に以下の状況で使用されます:
- AJAXリクエストが失敗した場合
- バリデーションエラーを報告する場合
- データベース操作の失敗時
- ファイルアップロードの失敗時
- 適切な権限がない場合
- リクエストの条件が満たされていない場合
- サーバーエラーをユーザーに通知する場合
- その他のビジネスロジックの失敗を通知する場合
構文
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.');
}
}
この例では、ユーザーが必要な権限を持っていない場合にエラーを返します。