Функция taxonomy_exists()
в WordPress проверяет, существует ли указанная таксономия. Это условный тег, который возвращает логическое значение: true
(если таксономия существует) или false
(если не существует).
Данная функция заменила устаревшую функцию is_taxonomy()
. Она часто используется при разработке тем и плагинов для проверки существования пользовательских таксономий или стандартных таксономий, таких как категории и метки.
bool taxonomy_exists( string $taxonomy )
Параметры
- $taxonomy (строка, обязательный): Название таксономии, существование которой нужно проверить.
Возвращаемое значение
- bool: Возвращает
true
, если таксономия существует, илиfalse
, если таксономия не зарегистрирована.
1. Проверка стандартных таксономий
Функция taxonomy_exists()
может использоваться для проверки существования стандартных таксономий WordPress, таких как категории, метки и другие.
$taxonomy_exist = taxonomy_exists( 'category' );
// Вернет true, так как категория (category) является встроенной таксономией WordPress.
$taxonomy_exist = taxonomy_exists( 'post_tag' );
// Вернет true, так как 'post_tag' (метки) также является стандартной таксономией.
$taxonomy_exist = taxonomy_exists( 'link_category' );
// Вернет true, если 'link_category' зарегистрирована (она использовалась в более старых версиях WordPress).
2. Проверка пользовательских таксономий
Если вы работаете с пользовательскими таксономиями, которые были зарегистрированы с помощью функции register_taxonomy()
, вы можете использовать taxonomy_exists()
для проверки их существования:
$taxonomy_exist = taxonomy_exists( 'my_custom_taxonomy' );
// Вернет true, если пользовательская таксономия 'my_custom_taxonomy' была зарегистрирована ранее.
$taxonomy_exist = taxonomy_exists( 'unregistered_taxonomy' );
// Вернет false, если таксономия с именем 'unregistered_taxonomy' не зарегистрирована.
3. Использование с условными тегами
Функция может использоваться для настройки поведения темы или плагина в зависимости от наличия таксономии:
if ( taxonomy_exists( 'my_custom_taxonomy' ) ) {
// Выполнить действия, если таксономия существует
echo 'Пользовательская таксономия существует!';
} else {
// Действия, если таксономия не найдена
echo 'Пользовательская таксономия не существует.';
}
4. Проверка иерархических таксономий
Эта функция также может быть полезна в комбинации с is_taxonomy_hierarchical()
, если вам нужно проверить не только существование таксономии, но и ее иерархическую структуру:
if ( taxonomy_exists( 'category' ) && is_taxonomy_hierarchical( 'category' ) ) {
// Категория существует и является иерархической таксономией
echo 'Категория существует и имеет иерархическую структуру.';
}
Заключение
Функция taxonomy_exists()
— это полезный инструмент для проверки существования как встроенных, так и пользовательских таксономий в WordPress. Она помогает избежать ошибок при работе с таксономиями и позволяет настроить гибкую логику для тем и плагинов.
Используя эту функцию, можно не только убедиться в наличии таксономии, но и избежать потенциальных проблем, связанных с вызовами к несуществующим таксономиям, что делает код более стабильным и предсказуемым.