add_term_meta()
は、WordPress のタクソノミー(カテゴリーやタグなど)にカスタムメタデータを追加するための関数です。
通常、カテゴリーやタグには「名前」や「スラッグ」などの基本情報しか保存できませんが、この関数を使うことで独自の追加情報を保存できます。
例えば、「カテゴリーの色」や「カスタムアイコンのURL」などを追加することができます。
機能の説明
add_term_meta()
は、特定のターム(カテゴリー、タグ、またはカスタムタクソノミーの項目)に対してメタデータを追加します。
主な用途
- カテゴリーやタグに追加情報(例えば、説明文やアイコン画像)を保存する
- カスタムタクソノミーに関連するカスタムフィールドを作成する
- タームごとに異なる設定値を保存する(例:背景色や並び順)
シンプルなコード例
add_term_meta(10, 'category_color', '#ff0000');
10
:メタデータを追加するタームのID(例:カテゴリーID)'category_color'
:メタデータのキー(ここでは「カテゴリーの色」)'#ff0000'
:メタデータの値(ここでは赤色)
このコードを実行すると、IDが 10
のカテゴリーに「category_color」というカスタムフィールドが作成され、値 #ff0000
(赤色)が保存されます。
使い方の説明
基本的な使い方
カテゴリーに「アイコン画像のURL」を追加する例:
function add_category_icon() {
$term_id = 5; // 追加したいカテゴリーのID
$meta_key = 'category_icon';
$meta_value = 'https://example.com/icon.png';
if (!add_term_meta($term_id, $meta_key, $meta_value, true)) {
echo 'メタデータの追加に失敗しました。';
}
}
add_action('init', 'add_category_icon');
$term_id = 5;
→ID 5
のカテゴリーにメタデータを追加$meta_key = 'category_icon';
→ メタデータのキー(アイコン画像のURL)$meta_value = 'https://example.com/icon.png';
→ 保存する値true
(第4引数)を指定すると、同じキーが既に存在する場合は追加されず、重複を防ぐ
複数の値を追加する
同じキーで異なる値を複数追加する場合:
add_term_meta(5, 'related_tags', 'WordPress');
add_term_meta(5, 'related_tags', 'SEO');
get_term_meta(5, 'related_tags', false);
を実行すると、['WordPress', 'SEO']
という配列が取得されます。
一緒に使うことが多い関連タグ
get_term_meta()
保存したメタデータを取得する。
$icon = get_term_meta(5, 'category_icon', true);
echo '<img src="' . esc_url($icon) . '" alt="Category Icon">';
5
のカテゴリーに保存された category_icon
のURLを取得し、画像として表示。
update_term_meta()
既存のメタデータを更新する。
update_term_meta(5, 'category_icon', 'https://example.com/new_icon.png');
ID 5
のカテゴリーの category_icon
の値を新しいURLに変更。
delete_term_meta()
保存されたメタデータを削除する。
delete_term_meta(5, 'category_icon');
ID 5
のカテゴリーの category_icon
を削除。
追加情報で取得したい場合
全てのメタデータを取得
get_term_meta()
の第3引数に false
を指定すると、配列で全ての値を取得できる。
$all_meta = get_term_meta(5);
print_r($all_meta);
メタデータの一覧を取得
$wpdb
を使って、特定のタームのメタデータ一覧を取得可能。
global $wpdb;
$term_id = 5;
$meta_list = $wpdb->get_results("SELECT meta_key, meta_value FROM {$wpdb->termmeta} WHERE term_id = $term_id");
foreach ($meta_list as $meta) {
echo "{$meta->meta_key}: {$meta->meta_value}<br>";
}
想定されるトラブル
メタデータが追加されない
add_term_meta()
の戻り値をfalse
にしないよう確認true
(第4引数)を指定している場合、既にデータが存在すると追加されないため、update_term_meta()
を使うinit
フックなど適切なタイミングで実行されているか確認
値が取得できない
get_term_meta()
の第3引数をfalse
にすると、配列で取得できる可能性があるdelete_term_meta()
が誤って実行されていないか確認
Q&A
まとめ
add_term_meta()
は、WordPress のカテゴリーやタグなどのタクソノミーにカスタムメタデータを追加するための関数です。
get_term_meta()
、update_term_meta()
、delete_term_meta()
などと組み合わせることで、柔軟にデータ管理が可能になります。カテゴリーごとの追加情報を保存する際に活用できる便利な関数です。
コメント