WordPressのterm_exists()
は、指定されたタクソノミー内に用語がすでに存在するかを確認し、存在する場合にはその用語のIDを返します。
機能の説明
term_exists()
は、指定したタクソノミー(カテゴリーやタグなど)内に特定の用語が存在するかを確認するためのテンプレートタグです。指定した用語が存在する場合はID、または配列形式でデータを返します。存在しない場合はnull
を返し、新規の用語作成時に重複を避けるために利用します。
シンプルなコード例
$term = 'WordPress';
if (term_exists($term, 'category')) {
echo 'カテゴリー「' . $term . '」はすでに存在しています。';
} else {
echo 'カテゴリー「' . $term . '」は存在しません。';
}
このコードは、カテゴリーに「WordPress」という用語が存在するかを確認します。存在すればメッセージを表示し、存在しなければ別のメッセージを表示します。
使い方の解説
term_exists()
は、特定のタクソノミー内にある用語の存在を確認するために使用します。カテゴリーやタグの重複確認や、用語の登録前にチェックする際に便利です。
引数
引数の詳細一覧は以下の通りです。
$term
-
確認する用語の名前、スラッグ、またはIDを指定します(文字列または整数)。
$taxonomy
-
用語を検索するタクソノミーを指定します(例:
category
、post_tag
)。省略すると、全タクソノミーが対象となります。 $parent
-
特定の親IDを持つ用語のみを対象とする場合に指定します。指定がない場合、すべての親を対象とします。
戻り値
戻り値の詳細は以下の通りです。
array
-
用語が存在する場合は、
term_id
とterm_taxonomy_id
を含む連想配列を返します。 null
-
指定した用語が存在しない場合は
null
を返します。
オプション
term_exists()
には特定のオプションはありませんが、引数によって柔軟に検索ができます。
使用例
$term_name = 'プログラミング';
$taxonomy = 'category';
if (term_exists($term_name, $taxonomy)) {
echo 'カテゴリー「' . $term_name . '」は既に存在します。';
} else {
wp_insert_term($term_name, $taxonomy);
echo 'カテゴリー「' . $term_name . '」を新規作成しました。';
}
指定したカテゴリー内に「プログラミング」という用語が存在するかを確認し、存在しない場合はwp_insert_term()
を使って新規にカテゴリーを作成します。
一緒に使うことが多い関連タグ
wp_insert_term()
term_exists()
とセットで使用され、新しい用語をタクソノミーに追加します。
使用例
$term_name = 'テクノロジー';
$taxonomy = 'category';
if (!term_exists($term_name, $taxonomy)) {
wp_insert_term($term_name, $taxonomy);
echo 'カテゴリー「' . $term_name . '」を追加しました。';
} else {
echo 'カテゴリー「' . $term_name . '」はすでに存在しています。';
}
term_exists()
で用語が存在しない場合にのみwp_insert_term()
を実行して、新しいカテゴリーを追加する例です。
追加情報を取得したい場合
term_exists()
と組み合わせて、用語の詳細情報を取得するには、get_term()
を使用できます。
get_term()
で取得できる用語の詳細情報
$term_id = term_exists('デザイン', 'category');
if ($term_id) {
$term_data = get_term($term_id, 'category');
echo 'カテゴリー名: ' . $term_data->name;
}
term_exists()
で取得したIDを使って、get_term()
で用語の詳細情報(名前や説明など)を取得します。
出力できる情報
name
: カテゴリー名slug
: カテゴリーのスラッグ(URLフレンドリーな名前)
想定されるトラブル
用語が取得できない
用語が存在しない場合、戻り値はnull
になります。これによりエラーが発生することがあるため、null
チェックが必要です。
タクソノミーが存在しない
無効なタクソノミーを指定するとエラーになるため、タクソノミーの有無も確認します。
Q&A
まとめ
term_exists()
は、指定タクソノミー内に特定の用語が存在するかを確認するための便利な関数で、用語の重複を避けるために役立ちます。wp_insert_term()
と組み合わせることで、効率的に新しい用語の登録が行えます。