Функция is_object_in_term()
используется для проверки того, связан ли указанный объект (например, запись) с одним или несколькими терминами в определённой таксономии. Это позволяет проверить, имеет ли объект конкретные категории, метки или другие пользовательские таксономии.
is_object_in_term( int $object_id, string $taxonomy, int|string|int[]|string[] $terms = null ): bool|WP_Error
Параметры
- $object_id(обязательный)
ID объекта, для которого проверяется наличие связи с терминами. Это может быть ID записи, ссылки или другого типа объектов в WordPress.- Тип данных:
int
- Тип данных:
- $taxonomy(обязательный)
Имя таксономии, к которой принадлежит термин.- Тип данных:
string
- Тип данных:
- $terms(необязательный)
Термин или массив терминов, которые необходимо проверить. Это могут быть ID терминов, их названия или слаги. Если термины передаются как числа, проверка будет производиться только по ID.- Тип данных:
int|string|int[]|string[]
- По умолчанию:
null
(если не передано, проверяется наличие любых терминов у объекта в указанной таксономии).
- Тип данных:
Возвращаемое значение
- bool — Возвращает
true
, если объект связан с указанными терминами, иfalse
, если нет. - WP_Error — Возвращает объект ошибки
WP_Error
, если есть ошибка ввода данных.
Описание
Функция is_object_in_term()
полезна для проверки, связан ли объект (например, пост) с одним или несколькими терминами таксономии. Это может быть полезно для создания условных действий, таких как проверка, относится ли запись к определённой категории или метке перед выполнением логики.
Если термины не указаны, функция проверит, имеет ли объект хотя бы один термин в указанной таксономии. Эта функция основана на wp_get_object_terms()
и get_object_term_cache()
.
Пример 1: Проверка связи объекта с термином по слагу
Проверим, связан ли текущий пост с термином "animals"
в таксономии animal_taxonomy
:
$is_in = is_object_in_term( $post->ID, 'animal_taxonomy', 'animals' );
if ( $is_in ) {
echo 'Пост связан с термином "animals".';
} else {
echo 'Пост не связан с термином "animals".';
}
Результат: Если пост связан с термином "animals"
, выведется сообщение.
Пример 2: Проверка связи по названию термина
Проверим наличие связи объекта с термином "Млекопитающие"
:
$is_in = is_object_in_term( $post->ID, 'animal_taxonomy', 'Млекопитающие' );
if ( $is_in ) {
echo 'Пост связан с термином "Млекопитающие".';
}
Результат: Если пост связан с термином "Млекопитающие"
, выведется сообщение.
Пример 3: Проверка связи объекта с термином по ID
Проверим, связан ли пост с термином, который имеет ID 12:
$is_in = is_object_in_term( $post->ID, 'animal_taxonomy', 12 );
if ( $is_in ) {
echo 'Пост связан с термином ID=12.';
}
Результат: Если пост связан с термином с ID 12, выведется сообщение.
Пример 4: Проверка нескольких терминов
Проверим, связан ли пост с любым из нескольких терминов: "Млекопитающие"
или термин с ID 42:
$is_in = is_object_in_term( $post->ID, 'animal_taxonomy', array( 'Млекопитающие', 42 ) );
if ( $is_in ) {
echo 'Пост связан с одним из терминов: "Млекопитающие" или ID=42.';
}
Результат: Если пост связан хотя бы с одним из указанных терминов, будет выведено сообщение.
Пример 5: Проверка наличия любого термина
Можно проверить, имеет ли объект любые термины в указанной таксономии, не указывая конкретные термины:
if ( is_object_in_term( $post->ID, 'animal_taxonomy' ) ) {
echo 'У поста есть термины в таксономии "animal_taxonomy".';
} else {
echo 'У поста нет терминов в таксономии "animal_taxonomy".';
}
Пример 6: Обработка ошибок с WP_Error
Функция может возвращать объект ошибки WP_Error
, если введены некорректные данные:
$is_in = is_object_in_term( $post->ID, 'animal_taxonomy', 'wrong_term' );
if ( is_wp_error( $is_in ) ) {
echo 'Ошибка: ' . $is_in->get_error_message();
} elseif ( $is_in ) {
echo 'Пост связан с термином.';
} else {
echo 'Пост не связан с термином.';
}
Результат: Если произошла ошибка (например, неверный термин), выводится сообщение об ошибке. Если проверка успешна, результат будет выведен.
Заключение
Функция is_object_in_term()
помогает гибко проверять, связан ли объект с указанными терминами в выбранной таксономии. Это делает её удобным инструментом для разработчиков, которым нужно адаптировать функциональность сайта в зависимости от таксономических данных.