- 実践 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