Проверяет, существует ли элемент таксономии с указанным ID, ярлыком или названием.
Обратите пожалуйста внимание, что функция не супер-быстрая, потому что работает напрямую с базой данных, поэтому возможно, что в вашей ситуации будет лучше использовать для этой цели get_term_by(), которая использует кэш, смотрите примеры.
Возвращает:
- ID термина, если он существует, а проверку мы делали только по ID, ярлыку или названию, не указывая второй и третий параметры функции. Кстати, с кириллическими названиями на моём тестовом сайте оно не заработало, но детальнее разбираться не стал. Если делали проверку по имени, а термины с одним и тем же именем повторяются, например существуют в разных таксономиях, то функция вернёт первый найденный (с наименьшим ID).
- Если передан второй параметр функции, то в случае, если термин существует, возвращает массив:
Array 'term_id' => 25, 'term_taxonomy_id' => 25 )
null
– если элемента таксономии (термина) не существует.0
– если в первом параметре был передан0
.
term_exists( $term, $taxonomy = '', $parent = null )
Параметры
- $term
- (целое|строка) ID, ярлык или название элемента таксономии.
- $taxonomy
- (строка) Название самой таксономии – бывает полезно, если вы осуществляете проверку по названию термина, а термины с таким же названием могут повторяться в разных таксономиях.
- $parent
- (целое) Вы также можете указать ID родительского элемента, чтобы сузить область поиска.
Примеры
Давайте для начала проверим, что термин с ярлыком travel
существует. Причём сделаем это двумя способами – как функцией term_exists()
, так и get_term_by().
$slug = 'travel'; // первый способ if( term_exists( $slug ) ) { echo 'Йез, термин существует!'; } // второй способ // заметили разницу? // тут придётся указать и название таксономии, в первом случае оно не было обязательным if( get_term_by( 'slug', $slug, 'post_tag' ) ) { echo 'Йез, термин существует!'; }
Источник: Блог Миши Рудрастых