wp_send_json()


WordPress関数wp_send_json()は、PHP配列やオブジェクトをJSON形式に変換して、レスポンスとして返すために使用されます。この関数は主にAjaxリクエストで使用されます。

シンタックス

wp_send_json( mixed $response, int $status_code = null );

引数の説明:

  • $response (mixed) — JSON形式で返すデータ。
  • $status_code (int, 省略可能) — HTTPレスポンスコード。

使用例

例1: 単純なJSONレスポンスの送信

以下のコードは単純なJSONデータを送信します。

<?php
add_action( 'wp_ajax_my_action', function() {
    wp_send_json( [ 'status' => 'success', 'message' => '処理が完了しました。' ] );
} );
?>

例2: エラーコードを含むレスポンス

エラーが発生した場合、HTTPステータスコードを指定します。

<?php
add_action( 'wp_ajax_my_error_action', function() {
    wp_send_json( [ 'status' => 'error', 'message' => 'エラーが発生しました。' ], 400 );
} );
?>

例3: 配列データの送信

複数のデータを配列形式で返します。

<?php
add_action( 'wp_ajax_my_data_action', function() {
    $data = [
        'user' => '太郎',
        'role' => '管理者',
        'id' => get_current_user_id()
    ];
    wp_send_json( $data );
} );
?>

例4: オブジェクトデータの送信

オブジェクト形式のデータをJSONに変換して送信します。

<?php
add_action( 'wp_ajax_my_object_action', function() {
    $response = new stdClass();
    $response->title = 'お知らせ';
    $response->content = 'このメッセージは重要です。';
    wp_send_json( $response );
} );
?>

例5: 条件に応じたデータ送信

条件に応じて異なるデータを送信します。

<?php
add_action( 'wp_ajax_my_conditional_action', function() {
    if ( is_user_logged_in() ) {
        wp_send_json( [ 'status' => 'logged_in', 'user_id' => get_current_user_id() ] );
    } else {
        wp_send_json( [ 'status' => 'not_logged_in' ], 401 );
    }
} );
?>

注意事項

この関数を使用する際は、必ずwp_die()を呼び出す必要はありません。wp_send_json()はデータを出力した後にwp_die()を自動的に呼び出します。これはスクリプトの実行を停止させるための処理です。


関連機能: