概要
term_exists
関数は、WordPressのタクソノミーにおいて特定の用語(ターム)が存在するかどうかを調べるために使用されます。この関数は、以下のような機能を実装する際に頻繁に利用されます。
- 投稿やカスタム投稿タイプに関連するタグやカテゴリの存在チェック
- タクソノミーの登録前に既存の用語を確認する処理
- タームの重複を防ぐためのバリデーション
- タームの存在するかによるロジック分岐
- タームの編集や削除を行う前の確認
- プラグインでのターム関連の設定やカスタマイズ
- カスタムフィールドやメタデータの処理時のターム確認
- 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バージョンで非推奨または削除されたという情報はありません。