category_exists()WP 2.0.0

Проверяет существует ли указанная рубрика (категория). Если существует, возвращает 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() может быть использована для той же цели, за исключением того, что она использует кэш.

Работает на основе: term_exists()
1 раз — 0.0012069 сек (очень медленно) | 50000 раз — 11.23 сек (медленно)

Хуков нет.

Возвращает

Строку|null. ID найденной рубрики или null при неудаче.

Использование

category_exists( $cat_name, $parent );
$cat_name(строка/число) (обязательный)
Рубрика, которую нужно проверить. Можно указывать название, альтернативное название (slug) или ID.
$parent(строка/число)
ID родительской рубрики.
По умолчанию: null

Примеры

0

#1 Проверим рубрику на существование в обход кэша:

require_once ABSPATH . 'wp-admin/includes/taxonomy.php';

// Проверим существование рубрики
$tag = category_exists( 'WordPress' );

if( $tag ){
	var_dump( $tag ); // string(1) "3"
}

Если рубрика существует, то выведет её ID.

0

#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

Заметки

Список изменений

С версии 2.0.0 Введена.

Код category_exists() WP 6.5.2

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