- 実践 WordPress ホーム
- 投稿タイプ管理
WordPress の関数 register_post_meta() の使い方まとめ

WordPress で投稿のメタデータ(カスタムフィールド)を登録するための関数 register_post_meta() についてまとめました。
Note
register_post_meta() は投稿専用の関数です。
これとは別に投稿専用の register_meta() という関数もあり、こちらは投稿の他に comment (コメント)・ term (カテゴリー・タグ)・ user (ユーザー)などをサポートしています。
投稿の場合には「メタデータ」は「カスタムフィールド」という呼び方をされることが多いため以下「カスタムフィールド」と呼びます。
基本的な使い方
register_post_meta() は通常 init フックのコールバック内で実行して使用します。
関数に渡すべき引数は次の 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