概要
register_rest_field
関数は、REST APIリクエスト時、WordPressオブジェクトに対してフィールドを追加するための関数です。この関数を使用することで、デフォルトのレスポンスにカスタムフィールドを追加し、APIの利用者に必要なデータを提供することができます。この関数は、特に以下のような機能を実装する際によく使われます:
- 投稿にカスタムメタデータを追加する
- タクソノミーに関する追加情報を提供する
- カスタム投稿タイプの拡張
- ユーザープロフィールにカスタムデータを統合
- プラグインの設定情報をREST APIで取得可能にする
- 特定の条件に基づいたデータを返すフィルタリング
- 外部APIから取得したデータをレスポンスに組み込む
- 特定のエンドポイント専用のデータ構造を提供する
構文
register_rest_field( $post_type, $field_name, $args );
パラメータ
$post_type
(string) – フィールドを追加したい投稿タイプ$field_name
(string) – 追加するフィールドの名前$args
(array) – カスタムフィールドの設定オプションを含む配列
戻り値
特に戻り値はありませんが、指定されたフィールドがREST APIのレスポンスに追加されます。
関連する関数
使用可能なバージョン
register_rest_field
関数は、WordPress 4.7で導入されました。
コアファイルのパス
wp-includes/rest-api.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('rest_api_init', function () {
register_rest_field('post', 'custom_field', [
'get_callback' => function ($data) {
return get_post_meta($data['id'], 'custom_field_key', true);
}
]);
});
このコードは、投稿のレスポンスにcustom_field
というフィールドを追加し、投稿メタからその値を取得します。
サンプルコード 2: タクソノミー情報を追加する
add_action('rest_api_init', function () {
register_rest_field('category', 'additional_data', [
'get_callback' => function ($data) {
return get_term_meta($data['id'], 'meta_key', true);
}
]);
});
このコードは、カテゴリにadditional_data
フィールドを追加し、その値をタクソノミーメタから取得します。
サンプルコード 3: カスタム投稿タイプの拡張
add_action('rest_api_init', function () {
register_rest_field('my_custom_post', 'extra_info', [
'get_callback' => function ($data) {
return get_post_meta($data['id'], '_extra_info', true);
}
]);
});
このコードは、カスタム投稿タイプmy_custom_post
にextra_info
フィールドを追加し、メタデータを取得します。
サンプルコード 4: ユーザー情報にカスタムデータを統合する
add_action('rest_api_init', function () {
register_rest_field('user', 'user_extra_data', [
'get_callback' => function ($data) {
return get_user_meta($data['id'], 'user_meta_key', true);
}
]);
});
このコードは、ユーザー情報にuser_extra_data
フィールドを追加し、ユーザーメタからその値を取得します。
サンプルコード 5: プラグインの設定情報を取得可能にする
add_action('rest_api_init', function () {
register_rest_field('plugin_settings', 'settings_data', [
'get_callback' => function () {
return get_option('my_plugin_settings');
}
]);
});
このコードは、プラグインの設定情報をREST APIにsettings_data
フィールドとして追加します。
引用元:WordPress Codex、WordPress Developer Resources