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() を使用しましょう。
コメント