ワードプレスのterm_exists関数の使用方法・解説

概要

term_exists 関数は、WordPressのタクソノミーにおいて特定の用語(ターム)が存在するかどうかを調べるために使用されます。この関数は、以下のような機能を実装する際に頻繁に利用されます。

  1. 投稿やカスタム投稿タイプに関連するタグやカテゴリの存在チェック
  2. タクソノミーの登録前に既存の用語を確認する処理
  3. タームの重複を防ぐためのバリデーション
  4. タームの存在するかによるロジック分岐
  5. タームの編集や削除を行う前の確認
  6. プラグインでのターム関連の設定やカスタマイズ
  7. カスタムフィールドやメタデータの処理時のターム確認
  8. APIを介してのターム管理機能の実装

構文

term_exists( $term, $taxonomy, $parent );

パラメータ

  • $term (string) : 確認したいタームの名前。
  • $taxonomy (string) : タームが属するタクソノミーのスラグ。
  • $parent (int|false, optional) : 親タームのID。親がない場合は false を指定します。

戻り値

term_exists 関数は、タームが存在する場合はターム情報の配列を、存在しない場合は null を返します。

関連する関数

使用可能なバージョン

term_exists 関数は、WordPress 3.0.0 以降で使用可能です。

コアファイルのパス

wp-includes/taxonomy.php

サンプルコード

サンプル1: タームの存在確認

$term = 'sample-term';
$taxonomy = 'category';

if (term_exists($term, $taxonomy)) {
    echo 'タームは存在します。';
} else {
    echo 'タームは存在しません。';
}

このコードは、特定のカテゴリに「sample-term」というタームが存在するかどうかを調べ、存在する場合はメッセージを表示します。

サンプル2: 親タームの確認

$term = 'child-term';
$taxonomy = 'category';
$parent = 10; // 親タームのID

if (term_exists($term, $taxonomy, $parent)) {
    echo '親タームと子タームが存在します。';
} else {
    echo '親タームまたは子タームが存在しません。';
}

このコードは、親タームIDが10の下に「child-term」が存在するかどうかを確認します。

サンプル3: タームが存在しない場合の処理

$term = 'new-term';
$taxonomy = 'tag';

if (!term_exists($term, $taxonomy)) {
    wp_insert_term($term, $taxonomy); // タームが存在しない場合は追加
    echo '新しいタームを追加しました。';
}

このコードは、指定したタグが存在しない場合に新しいタームを追加します。

サンプル4: タクソノミーの重複チェック

$term_slug = sanitize_title('Duplicate Term');
$taxonomy = 'custom_taxonomy';

if(term_exists($term_slug, $taxonomy)) {
    echo '既にこのタームは存在します。';
} else {
    // 新しいタームを作成する処理
}

このコードでは、カスタムタクソノミーに指定したタームが重複しているかどうかを確認します。

サンプル5: ターム削除前の存在確認

$term_id = 123; // 削除したいタームのID
$taxonomy = 'category';

if (term_exists($term_id, $taxonomy)) {
    wp_delete_term($term_id, $taxonomy); // タームが存在すれば削除
    echo 'タームを削除しました。';
}

このコードは、指定したIDのタームが存在するかを確認し、存在すればそれを削除します。

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

term_exists 関数は、特定のWordPressバージョンで非推奨または削除されたという情報はありません。

この関数について質問する


上の計算式の答えを入力してください