register_post_meta() の使い方|説明・引数・注意点

説明

register_post_meta() は、特定の投稿タイプのメタデータを登録する関数です。

基本構文

register_post_meta( string $post_type, string $meta_key, array $args ): bool

引数

  • $post_type:投稿タイプ(空文字で全タイプ)
  • $meta_key:メタキー
  • $args:register_meta() と同じ設定

戻り値

登録できたら true。

使い方(サンプル)

register_post_meta( 'book', 'isbn', array(
	'type'         => 'string',
	'single'       => true,
	'show_in_rest' => true,
) );

注意点

  • init フックで呼びます。

実務での使いどころ

  • 特定の投稿タイプの、カスタムフィールドを登録するとき。
  • メタを、REST APIやブロックエディターから扱えるようにするとき。

よくあるミスと対処

  • show_in_rest を指定せず、REST APIやブロックエディターで、メタが使えない。
  • 投稿タイプが custom-fields をサポートしておらず、REST APIにメタが出ない。
  • init フックの外で登録している。

NG例

register_post_meta( 'news', 'price', array( 'type' => 'integer' ) ); // REST API に出ない

OK例

add_action( 'init', function () {
	register_post_meta( 'news', 'price', array(
		'type'         => 'integer',
		'single'       => true,
		'show_in_rest' => true,
	) );
} );

使い分け早見表

関数 対象
register_post_meta() 特定の投稿タイプのメタ
register_meta() 投稿・ユーザー・ターム・コメントのメタ
update_post_meta() メタの値を保存する

関連項目

register_meta()、get_post_meta()

公式リファレンス:register_post_meta() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました