add_post_meta()


WordPress関数add_post_meta()は、投稿にカスタムフィールド(メタデータ)を追加するために使用されます。この関数は、指定された投稿IDにキーと値のペアを保存します。

シンタックス

add_post_meta( int $post_id, string $meta_key, mixed $meta_value, bool $unique = false );

引数の説明

  • $post_id (int) — メタデータを追加する対象の投稿ID。
  • $meta_key (string) — 保存するメタデータのキー。
  • $meta_value (mixed) — 保存するメタデータの値。
  • $unique (bool) — 同じキーのメタデータを1つだけ保存するかどうかを指定。デフォルトはfalse

例1: 投稿にカスタムフィールドを追加する

投稿にカスタムフィールドを追加する基本的な例です。

<?php add_post_meta( get_the_ID(), 'custom_key', 'カスタム値', true ); ?>

例2: 同じキーで複数の値を保存する

$uniquefalseに設定して、同じキーで複数のメタデータを保存します。

<?php add_post_meta( get_the_ID(), 'custom_key', '値1', false ); ?>
<?php add_post_meta( get_the_ID(), 'custom_key', '値2', false ); ?>

例3: 投稿のカスタムフィールドを確認して追加する

同じキーが存在しない場合のみ追加します。

<?php
if ( ! metadata_exists( 'post', get_the_ID(), 'custom_key' ) ) {
    add_post_meta( get_the_ID(), 'custom_key', '新しい値', true );
}
?>

例4: 投稿IDを指定してカスタムフィールドを追加する

特定の投稿IDに対してカスタムフィールドを追加します。

<?php add_post_meta( 42, 'custom_key', '特定の投稿の値', true ); ?>

例5: 管理画面からカスタムフィールドを追加する

WordPress管理画面の投稿画面でカスタムフィールドを追加するコードです。

<?php
add_action( 'save_post', function( $post_id ) {
    if ( ! metadata_exists( 'post', $post_id, 'admin_key' ) ) {
        add_post_meta( $post_id, 'admin_key', '管理画面で追加', true );
    }
} );
?>

注意事項

  • $uniquetrueの場合、同じ$meta_keyがすでに存在すると新しい値は保存されません。
  • カスタムフィールドを大量に保存すると、データベースに負荷がかかる可能性があります。

関連機能: