コンテンツにスキップ

WordPress の関数 register_post_meta() の使い方まとめ

メインイメージ

WordPress で投稿のメタデータ(カスタムフィールド)を登録するための関数 register_post_meta() についてまとめました。

register_post_meta( $post_type, $meta_key, $args );

Note

register_post_meta() は投稿専用の関数です。 これとは別に投稿専用の register_meta() という関数もあり、こちらは投稿の他に comment (コメント)・ term (カテゴリー・タグ)・ user (ユーザー)などをサポートしています。

投稿の場合には「メタデータ」は「カスタムフィールド」という呼び方をされることが多いため以下「カスタムフィールド」と呼びます。

基本的な使い方

register_post_meta() は通常 init フックのコールバック内で実行して使用します。 関数に渡すべき引数は次の 3 つです。

  1. 投稿タイプ(文字列)
  2. メタキー(文字列)
  3. 設定(連想配列)
add_action( 'init', 'myplugin_register_post_meta' );
function myplugin_register_post_meta() {
  // 投稿にカスタムフィールドを登録する
  $post_type = 'post';
  $meta_key = 'my_meta_key';
  $args = [
    // 格納する値の型:
    'type' => 'string',
    // 説明:
    'description' => 'カスタムフィールドの説明',
    // 各投稿オブジェクトに対して保存できる値を 1 つだけにするかどうか:
    'single' => true,
    // 値のデフォルト値:
    'default' => 'デフォルト値',
    // REST API でフィールドを公開するかどうか:
    'show_in_rest' => true,
  ];
  register_post_meta( $post_type, $meta_key, $args );
}

引数

以下引数の詳細の説明です。

第 1 引数 $post_type string

カスタムフィールドを追加する先の投稿タイプ。 すべての投稿タイプに追加したい場合は空文字列を渡すとよい。

第 2 引数 $meta_key string

カスタムフィールドのキー(名前)。

第 3 引数 $args array

カスタムフィールドの設定を指定するための連想配列。

$args = [
'object_subtype' => '...',
'type' => '...',
'description' => '...',
'single' => true,
'default' => '',
'sanitize_callback' => '',
'auth_callback' => '',
'show_in_rest' => true,
'revisions_enabled' => true,
];

ほぼそのまま register_meta() に渡されるので、詳細は register_meta() の説明ページ ↓ をご覧ください。

戻り値は登録の成否を表す boolean です。 成功した場合は true 、失敗した場合は false を返します。

実装

register_post_meta() は引数をほぼそのまま register_meta() に渡すラッパー関数として実装されています。 第 1 引数の $post_type を第 3 引数の $args にキー object_subtype に渡してから register_meta() を呼び出します。

function register_post_meta( $post_type, $meta_key, array $args ) {
    $args['object_subtype'] = $post_type;

    return register_meta( 'post', $meta_key, $args );
}

確認時のバージョン

  • WordPress 6.6.2

関連ページ