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

概要

register_rest_field関数は、REST APIリクエスト時、WordPressオブジェクトに対してフィールドを追加するための関数です。この関数を使用することで、デフォルトのレスポンスにカスタムフィールドを追加し、APIの利用者に必要なデータを提供することができます。この関数は、特に以下のような機能を実装する際によく使われます:

  1. 投稿にカスタムメタデータを追加する
  2. タクソノミーに関する追加情報を提供する
  3. カスタム投稿タイプの拡張
  4. ユーザープロフィールにカスタムデータを統合
  5. プラグインの設定情報をREST APIで取得可能にする
  6. 特定の条件に基づいたデータを返すフィルタリング
  7. 外部APIから取得したデータをレスポンスに組み込む
  8. 特定のエンドポイント専用のデータ構造を提供する

構文

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_postextra_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

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


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