tag_exists()WP 2.3.0

Проверяет существует ли указанная метка (тег). Если существует, возвращает ID или массив данных этой метки.

Под метками или тегами понимаются термины таксономии post_tag, которые зарегистрированы в WordPress изначально и используются в Записях.

Эта функция определена только в админке, поэтому, если вызвать её во фронте, то получим ошибку:

Fatal error: Uncaught Error: Call to undefined function tag_exists()

Чтобы функция tag_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.0013721 сек (очень медленно) | 50000 раз — 21.38 сек (медленно) | PHP 7.4.25, WP 5.9.3

Хуков нет.

Возвращает

Разное. null/число/массив

  • Массив — когда метка найдена:

    [
    	'term_id' => 'term id',
    	'term_taxonomy_id' => 'taxonomy id'
    ]
  • null — когда метки не существует.

  • 0 — когда в функцию передан 0 вместо ID метки.

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

tag_exists( $tag_name );
$tag_name(строка/число) (обязательный)
Метка, которую нужно проверить. Можно указывать название, альтернативное название (slug) или ID.

Примеры

0

#1 Проверим метку на существование:

// Проверим существование метки
$tag = tag_exists( 'Мужская одежда' );

if( $tag ){
	print_r( $tag );
}

Если метка существует, то выведет подобное:

Array (
	[term_id] => 541
	[term_taxonomy_id] => 541
)

Почему term_id и term_taxonomy_id равны читайте в статье Что такое Таксономии в WordPress.

0

#2 term_exists и tag_exists

Функция tag_exists() - это обёртка функции term_exists() для более удобной проверки дефолтных терминов таксономии post_tag (метки, теги). Следующие два вариант идентичные по результату:

$tag_name = 'Метка #1';

// Вариант 1
tag_exists( $tag_name );

// Вариант 2
term_exists( $tag_name, 'post_tag' )

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

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

Код tag_exists() WP 6.0.2

function tag_exists( $tag_name ) {
	return term_exists( $tag_name, 'post_tag' );
}