register_post_meta()


WordPressのregister_post_meta()関数は、投稿メタデータを登録するために使用されます。この関数は主にメタデータを安全に保存し、特定の条件で表示するために使われます。

シンタックス

register_post_meta( string $post_type, string $meta_key, array $args );

引数の説明:

  • $post_type (string) — 投稿タイプを指定します。
  • $meta_key (string) — 登録するメタデータのキーを指定します。
  • $args (array) — オプションの引数。以下の要素を含みます:
    • show_in_rest (bool|array) — REST APIでの公開を指定します。
    • single (bool) — 単一の値かどうかを指定します。
    • type (string) — メタデータの型(例: ‘string’, ‘integer’ など)を指定します。
    • auth_callback (callable) — 権限コールバック関数を指定します。
    • sanitize_callback (callable) — データのサニタイズ処理を指定します。

例 1: 基本的なメタデータ登録

投稿タイプ「post」に対してメタデータを登録します。

register_post_meta( 'post', '_custom_meta_key', array(
    'show_in_rest' => true,
    'single' => true,
    'type' => 'string'
) );

例 2: REST APIの有効化とカスタム型

REST APIを有効にし、整数型のカスタムメタデータを登録します。

register_post_meta( 'page', '_custom_number', array(
    'show_in_rest' => true,
    'single' => true,
    'type' => 'integer'
) );

例 3: 認証コールバックを追加

特定のユーザーだけがメタデータを更新できるようにします。

register_post_meta( 'post', '_secure_meta', array(
    'show_in_rest' => true,
    'single' => true,
    'auth_callback' => function() {
        return current_user_can( 'edit_posts' );
    }
) );

例 4: サニタイズ処理を設定

入力データをサニタイズするコールバック関数を指定します。

register_post_meta( 'post', '_safe_meta', array(
    'show_in_rest' => true,
    'single' => true,
    'sanitize_callback' => 'sanitize_text_field'
) );

例 5: 条件付きでメタデータを取得

保存されたカスタムメタデータを取得して条件を設定します。

$value = get_post_meta( get_the_ID(), '_custom_meta_key', true );

if ( !empty( $value ) ) {
    echo '<div>' . esc_html( $value ) . '</div>';
}

注意事項

  • メタデータキーはアンダースコア(_)で始めると非公開のメタデータとして扱われます。
  • show_in_rest を設定すると、GutenbergエディターやREST APIに統合できます。
  • データのサニタイズと認証コールバックはセキュリティのために必ず指定してください。

関連機能: