説明
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

コメント