MENU

term_exists()

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

用語を検索するタクソノミーを指定します(例:categorypost_tag)。省略すると、全タクソノミーが対象となります。

$parent

特定の親IDを持つ用語のみを対象とする場合に指定します。指定がない場合、すべての親を対象とします。

戻り値

戻り値の詳細は以下の通りです。

array

用語が存在する場合は、term_idterm_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()の結果が空になる場合は何が原因ですか?

用語が存在しない場合、戻り値はnullです。用語やタクソノミーが正しいか確認しましょう。

term_exists()wp_insert_term()の使い方を教えてください。

term_exists()で用語が存在しない場合、wp_insert_term()で新規に用語を追加します。

まとめ

term_exists()は、指定タクソノミー内に特定の用語が存在するかを確認するための便利な関数で、用語の重複を避けるために役立ちます。wp_insert_term()と組み合わせることで、効率的に新しい用語の登録が行えます。

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