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 6.6.1
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; }