is_object_in_term()
Определяет связан ли указанный объект с любым из указанных элементов таксономии (термином). Можно указать конкретный термин(ы) для проверки связи.
Указанные термины сравниваются с ID, названием и слагом терминов объекта. Если передать термины как числа, то сравнение будет только с ID терминов объекта. Если не указать термин, то функция проверит есть ли у объекта хоть один термин из указанной таксономии.
Работает на основе: wp_get_object_terms(), get_object_term_cache()
Основа для: has_term()
1 раз — 0.000809 сек (медленно) | 50000 раз — 1.16 сек (быстро) | PHP 7.0.8, WP 4.6.1
Хуков нет.
Возвращает
true|false|WP_Error
. true, если объект относится к термин или false. Объект WP_Error, если произошла ошибка.
Использование
if( is_object_in_term( $object_id, $taxonomy, $terms ) ){ ... }
- $object_id(число) (обязательный)
- ID поста, связь которого с термином нужно проверить.
- $taxonomy(строка) (обязательный)
- Название таксономии, к которой принадлежит термин из параметра $terms.
- $terms(строка/массив/число)
- ID, название или слаг термина. Можно указать несколько терминов в массиве.
По умолчанию: null
Примеры
#1 Проверка наличия терминов у объекта
Проверим, находится ли текущий пост ($post->ID) в термине "Языки" (yaziki или ID=5), таксономии 'my_taxonomy':
$is_in = is_object_in_term( $post->ID, 'my_taxonomy', 'yaziki' ); if ( $is_in ) echo 'Пост находится в термине "Языки"'; // также можно указать термин так $is_in = is_object_in_term( $post->ID, 'my_taxonomy', 'Языки' ); // или $is_in = is_object_in_term( $post->ID, 'my_taxonomy', 5 );
#2 Проверка нескольких терминов
$is_in = is_object_in_term( $post->ID, 'my_taxonomy', array('Языки', 25) ); if( $is_in ) echo 'Пост связан с одним из терминов: Языки', 25';
Список изменений
С версии 2.7.0 | Введена. |