category_exists()
Проверяет существует ли указанная рубрика (категория). Если существует, возвращает ID этой рубрики.
Под рубриками или категориями понимаются термины таксономии category, которые зарегистрированы в WordPress изначально и используются в Записях.
Эта функция определена только в админке, поэтому, если вызвать её во фронте, то получим ошибку:
Fatal error: Uncaught Error: Call to undefined function category_exists()
Чтобы функция category_exists() заработала во фронте, нужно подключить файл:
require_once ABSPATH . 'wp-admin/includes/taxonomy.php';
C WP 6.0. функция работает с кэшем и использует get_terms().
До WP 6.0. Эта функция выполняет запрос к базе данных. get_term_by() может быть использована для той же цели, за исключением того, что она использует кэш.
Хуков нет.
Возвращает
Строку|null. ID найденной рубрики или null при неудаче.
Использование
category_exists( $cat_name, $parent );
- $cat_name(строка/число) (обязательный)
- Рубрика, которую нужно проверить. Можно указывать название, альтернативное название (slug) или ID.
- $parent(строка/число)
- ID родительской рубрики.
По умолчанию: null
Примеры
#1 Проверим рубрику на существование в обход кэша:
require_once ABSPATH . 'wp-admin/includes/taxonomy.php';
// Проверим существование рубрики
$tag = category_exists( 'WordPress' );
if( $tag ){
var_dump( $tag ); // string(1) "3"
}
Если рубрика существует, то выведет её ID.
#2 term_exists и category_exists
Функция 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()
Список изменений
| С версии 2.0.0 | Введена. |
Код category_exists() category exists WP 7.0
function category_exists( $cat_name, $category_parent = null ) {
$id = term_exists( $cat_name, 'category', $category_parent );
if ( is_array( $id ) ) {
$id = $id['term_id'];
}
return $id;
}