add_metadata()
は、WordPressのデータベースにメタデータを追加する関数です。
メタデータとは、投稿・ユーザー・コメント・タクソノミーなどに関連付けられた追加情報のことで、カスタムフィールドのような役割を果たします。
この関数を利用することで、カスタムデータを簡単に管理できるようになります。例えば、記事に特定の属性(例:閲覧回数やカスタムラベル)を付与したい場合に使用されます。
機能の説明
add_metadata()
は、WordPressのメタデータテーブル(wp_postmeta
、wp_usermeta
など)に新しいメタデータを追加する関数です。update_metadata()
と異なり、同じキーのメタデータがすでに存在していても、上書きせずに新しい値を追加する仕様になっています。
主な用途
- 投稿やユーザーに独自のデータを付与する
- カスタム投稿タイプの追加情報を管理する
- ユーザーの設定情報を保存する
- 特定のコメントにカスタム情報を付与する
シンプルなコード例
以下のコードは、投稿(記事)に custom_key
というカスタムメタデータを追加する例です。
add_metadata('post', 123, 'custom_key', 'カスタム値', true);
'post'
:メタデータを追加する対象(投稿)123
:投稿 ID(この投稿にメタデータを追加)'custom_key'
:メタデータのキー'カスタム値'
:メタデータの値true
:同じキーのデータがある場合は追加せずに処理を終了(false
にすると同じキーで複数のデータを保持可能)
使い方の説明
基本的な使用方法
以下のコードは、特定のユーザーにカスタムメタデータを追加する例です。
$user_id = 5; // ユーザーID
$meta_key = 'user_role';
$meta_value = 'premium';
add_metadata('user', $user_id, $meta_key, $meta_value, true);
'user'
:ユーザーのメタデータを追加$user_id
:対象のユーザーID$meta_key
:保存するキー名(この場合はuser_role
)$meta_value
:保存する値(premium
というユーザーロール)true
:すでに同じキーのデータがある場合は追加しない
一緒に使うことが多い関連タグ
get_metadata()
追加したメタデータを取得するには、get_metadata()
を使用します。
$meta_value = get_metadata('post', 123, 'custom_key', true);
echo $meta_value; // 'カスタム値' が出力される
update_metadata()
既存のメタデータを更新する場合は、update_metadata()
を使用します。
update_metadata('post', 123, 'custom_key', '新しいカスタム値');
delete_metadata()
特定のメタデータを削除する場合は、delete_metadata()
を使います。
delete_metadata('post', 123, 'custom_key');
追加情報で取得したい場合
get_post_meta()
投稿のメタデータを取得する方法。
$meta_value = get_post_meta(123, 'custom_key', true);
echo $meta_value;
get_user_meta()
ユーザーのメタデータを取得する方法。
$role = get_user_meta(5, 'user_role', true);
echo $role; // 'premium' が出力される
get_comment_meta()
コメントのメタデータを取得する場合。
$comment_meta = get_comment_meta(45, 'comment_rating', true);
echo $comment_meta;
想定されるトラブル
メタデータが保存されない
add_metadata()
を使用する対象(投稿・ユーザーなど)が正しく指定されていないtrue
を指定したため、すでに同じキーのデータが存在し追加されなかった
解決方法
- 対象のIDが正しいか確認する
false
を指定して、同じキーのデータが複数追加されるようにする
add_metadata('post', 123, 'custom_key', 'カスタム値', false);
Q&A
まとめ
add_metadata()
は、WordPressのデータベースにメタデータを追加するための関数です。
投稿・ユーザー・コメント・タクソノミーなどに対してカスタムデータを保存でき、動的な情報管理に適しています。
ただし、同じキーのデータがすでに存在している場合は追加されないため、上書きが必要な場合は update_metadata()
を使用しましょう。
コメント