MENU

add_term_meta()

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()add_post_meta() と何が違うのですか?

add_post_meta() は投稿(postpage など)にメタデータを追加するのに対し、add_term_meta() はカテゴリーやタグなどのタクソノミーにメタデータを追加します。

add_term_meta() で保存できるデータの型は?

文字列、配列、オブジェクトなど様々なデータ型が保存可能ですが、データベースにはシリアライズされて保存されます。

update_term_meta() ではなく add_term_meta() を使う理由は?

add_term_meta() は、同じキーで複数の値を保存できる点が特徴です。一方 update_term_meta() は1つの値のみを保存します。

まとめ

add_term_meta() は、WordPress のカテゴリーやタグなどのタクソノミーにカスタムメタデータを追加するための関数です。

get_term_meta()update_term_meta()delete_term_meta() などと組み合わせることで、柔軟にデータ管理が可能になります。カテゴリーごとの追加情報を保存する際に活用できる便利な関数です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次