概要
wp_is_json_request
関数は、WordPressが受信したリクエストがJSON形式であるかどうかを調べるための関数です。この関数は、主にREST APIやAjaxリクエストなど、JSONデータを扱う際に有効です。以下は、一般的な使用場面です。
- REST APIエンドポイントの検証
- Ajaxリクエストの処理
- フロントエンドとバックエンド間のデータ通信
- スマートフォンアプリへのデータ提供
- プラグインの開発でのデータ検証
- データのインポート/エクスポート処理
- SPA(Single Page Application)との連携
- 外部サービスとの統合
構文
wp_is_json_request();
パラメータ
この関数にはパラメータはありません。
戻り値
true
:リクエストがJSON形式の場合。false
:リクエストがJSON形式でない場合。
関連する関数
使用可能なバージョン
WordPress 4.4以降で使用可能です。
コアファイルのパス
wp-includes/rest-api.php
サンプルコード
サンプルコード1
if ( wp_is_json_request() ) {
// ここにJSONリクエストの場合の処理を追加
echo json_encode( array( 'message' => 'これはJSONリクエストです。' ) );
}
このコードは、リクエストがJSON形式である場合に、その旨を示すメッセージをJSON形式で返します。
サンプルコード2
add_action( 'init', function() {
if ( wp_is_json_request() ) {
// JSONリクエストのヘッダーを設定
header( 'Content-Type: application/json' );
}
});
このコードは、JSONリクエストの場合に適切なContent-Typeヘッダーを設定します。
サンプルコード3
add_action( 'wp_ajax_my_ajax_action', function() {
if ( wp_is_json_request() ) {
// JSONリクエストの場合の処理
wp_send_json_success( array( 'data' => '成功しました!' ) );
}
});
このコードでは、AjaxリクエストがJSON形式である場合、成功メッセージをJSON形式で返します。
サンプルコード4
add_action( 'rest_api_init', function () {
register_rest_route( 'myplugin/v1', '/data/', array(
'methods' => 'GET',
'callback' => function() {
if ( wp_is_json_request() ) {
return new WP_REST_Response( array( 'data' => 'これはREST APIの応答です。' ), 200 );
}
}
));
});
このコードは、REST APIのエンドポイントを登録し、リクエストがJSON形式の場合にデータを返します。
サンプルコード5
// JSONリクエストかどうかを確認
if ( ! wp_is_json_request() ) {
wp_send_json_error( array( 'message' => 'JSONリクエストではありません。' ) );
}
このコードは、リクエストがJSON形式でない場合にエラーメッセージを返します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |
非推奨または削除されたバージョン
現在、wp_is_json_request
関数は特定のバージョンで非推奨または削除されていません。