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

説明

register_meta() は、メタデータを登録し、型・REST API・サニタイズなどを設定する関数です。

基本構文

register_meta( string $object_type, string $meta_key, array $args, string|array $deprecated = null ): bool

引数

  • $object_type:post / user / term / comment
  • $meta_key:メタキー
  • $args:type、single、show_in_rest、sanitize_callback など

戻り値

登録できたら true。

使い方(サンプル)

register_meta( 'post', 'price', array(
	'type'         => 'integer',
	'single'       => true,
	'show_in_rest' => true,
) );

注意点

  • REST APIやブロックエディターでカスタムフィールドを扱うには show_in_rest を true にします。
  • 投稿タイプごとに登録する場合は register_post_meta() が便利です。

実務での使いどころ

  • カスタムフィールドの型や、サニタイズの規則を、あらかじめ決めておくとき。
  • メタの値を、REST APIやブロックエディターから扱えるようにするとき(show_in_rest)。

よくあるミスと対処

  • show_in_rest を指定せず、REST APIやブロックエディターで、メタが使えない。
  • type を指定しない、または実際の値と型が合っていない。
  • single の指定を間違える。false(既定)では、値が配列として扱われる。
  • init フックの外で登録している。

NG例

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

OK例

add_action( 'init', function () {
	register_meta( 'post', 'price', array(
		'type'              => 'integer',
		'single'            => true,
		'show_in_rest'      => true,
		'sanitize_callback' => 'absint',
	) );
} );

使い分け早見表

関数 対象
register_meta() 投稿・ユーザー・ターム・コメントのメタ
register_post_meta() 投稿(投稿タイプを指定)のメタ

関連項目

register_post_meta()、get_post_meta()

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

コメント

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