Проверяет существует ли указанная рубрика (категория). Если существует, возвращает ID этой рубрики.
Под рубриками или категориями понимаются термины таксономии category
, которые зарегистрированы в WordPress изначально и используются в Записях.
Эта функция определена только в админке, поэтому, если вызвать её во фронте, то получим ошибку:
Чтобы функция category_exists() заработала во фронте, нужно подключить файл:
require_once ABSPATH . 'wp-admin/includes/taxonomy.php';
Эта функция делает запрос в базу данных. Используйте get_term_by() чтобы проверить наличие рубрики с использованием кэша.
1 раз — 0.0012069 сек (очень медленно) | 50000 раз — 11.23 сек (медленно)
Хуков нет.
Возвращает
Строку|null
. ID найденной рубрики или null при неудаче.
Использование
category_exists( $cat_name, $parent );
- $cat_name(строка/число) (обязательный)
- Рубрика, которую нужно проверить. Можно указывать название, альтернативное название (slug) или ID.
- $parent(строка/число)
- ID родительской рубрики.
По умолчанию: null
Примеры
require_once ABSPATH . 'wp-admin/includes/taxonomy.php'; // Проверим существование рубрики $tag = category_exists( 'WordPress' ); if( $tag ){ var_dump( $tag ); // string(1) "3" }
Если рубрика существует, то выведет её ID.
Функция category_exists()
- это обёртка функции term_exists() для более удобной проверки дефолтных терминов таксономии category (рубрики, категории). Следующие два варианта делают одно и тоже:
$cat_name = 'Заметки WordPress'; // Вариант 1 $id = category_exists( $cat_name ); print_r( $id ); //> 572 // Вариант 2 $id = term_exists( $cat_name, 'category' ); print_r( $id ); //> Array( [term_id] => 572 [term_taxonomy_id] => 572 ) if ( is_array( $id ) ) { $id = $id['term_id']; } print_r( $id ); //> 572
Заметки
- Смотрите: term_exists()
Список изменений
function category_exists( $cat_name, $parent = null ) { $id = term_exists( $cat_name, 'category', $parent ); if ( is_array( $id ) ) { $id = $id['term_id']; } return $id; }