- Описание функции
- Примеры использования
- Получение всех терминов, связанных с объектом
- Получение количества терминов, связанных с объектом
- Сортировка терминов по имени
- Ограничение результатов по количеству
- Получение только идентификаторов терминов
- Получение только названий терминов
- Получение только слагов терминов
- Получение только количества совпадающих терминов
- Получение родительских терминов по идентификатору
- Получение родительских терминов по названию
- Получение родительских терминов по слагу
- Получение дочерних терминов по идентификатору
- Получение дочерних терминов по названию
- Получение дочерних терминов по слагу
- Получение терминов с определенным мета-ключом
- Получение терминов с определенным мета-значением
- Получение терминов с определенным мета-ключом и значением
- Получение терминов, у которых есть потомки
- Получение терминов, у которых нет потомков
- Получение терминов, связанных с объектами определенного типа
- Вопросы и ответы
- Как получить все термины, связанные с объектом или объектами?
- Как получить количество терминов, связанных с объектом или объектами?
- Как получить только ID терминов, связанных с объектом или объектами?
- Как отсортировать термины по определенному полю?
- Как скрыть термины, которые не привязаны к постам?
- Как включить только определенные термины по их ID?
- Как исключить определенные термины по их ID?
- Как получить только имена терминов?
- Как получить только слаги терминов?
- Связанные элементы
Описание функции
Функция wp_get_object_terms() используется для получения терминов, связанных с заданным объектом(ами), в указанных таксономиях.
Использование
wp_get_object_terms( int|int[] $object_ids, string|string[] $taxonomies, array|string $args = array() ): WP_Term[]|int[]|string[]|string|WP_Error Функция принимает следующие параметры:
$object_ids(обязательный) — ID(ы) объекта(ов), для которого нужно получить термины.$taxonomies(обязательный) — названия таксономий, из которых нужно получить термины.$args(необязательный) — дополнительные аргументы для запроса. См.WP_Term_Query::__construct()для поддерживаемых аргументов.
$object_ids(int|int[]) — ID(ы) объекта(ов), для которого нужно получить термины.$taxonomies(string|string[]) — названия таксономий, из которых нужно получить термины.$args(array|string) — дополнительные аргументы для запроса. См.WP_Term_Query::__construct()для поддерживаемых аргументов.
Функция возвращает массив терминов (WP_Term[]), количество терминов в виде числовой строки (int[]), строку или объект ошибки (WP_Error), если какая-либо из таксономий не существует. См. WP_Term_Query::get_terms() для получения дополнительной информации.
<?php
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => true,
'fields' => 'all'
);
$terms = wp_get_object_terms( $object_ids, $taxonomies, $args );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name . '<br>';
}
}
?> В этом примере мы получаем все термины из таксономии «category», связанные с объектом, имеющим ID 123. Термины сортируются по имени в алфавитном порядке (по возрастанию) и выводятся на экран.
Примеры использования
Получение всех терминов, связанных с объектом
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$terms = wp_get_object_terms( $object_ids, $taxonomies );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем все термины, связанные с объектом с ID 123 в таксономии «category». Если термины найдены и нет ошибок, то мы выводим их названия.
Получение количества терминов, связанных с объектом
$object_ids = array( 123, 456 ); // массив ID объектов
$taxonomies = array( 'category', 'post_tag' ); // массив названий таксономий
$term_count = wp_get_object_terms( $object_ids, $taxonomies, array( 'count' => true ) );
echo $term_count;
В данном примере мы получаем количество терминов, связанных с объектами с ID 123 и 456 в таксономиях «category» и «post_tag». Результат выводится на экран.
Сортировка терминов по имени
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'orderby' => 'name' ) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем все термины, связанные с объектом с ID 123 в таксономии «category» и сортируем их по имени. Если термины найдены и нет ошибок, то мы выводим их названия.
Ограничение результатов по количеству
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'number' => 5 ) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем первые 5 терминов, связанных с объектом с ID 123 в таксономии «category». Если термины найдены и нет ошибок, то мы выводим их названия.
Получение только идентификаторов терминов
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$term_ids = wp_get_object_terms( $object_ids, $taxonomies, array( 'fields' => 'ids' ) );
print_r( $term_ids );
В данном примере мы получаем только идентификаторы терминов, связанных с объектом с ID 123 в таксономии «category». Результат выводится на экран в виде массива.
Получение только названий терминов
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$term_names = wp_get_object_terms( $object_ids, $taxonomies, array( 'fields' => 'names' ) );
print_r( $term_names );
В данном примере мы получаем только названия терминов, связанных с объектом с ID 123 в таксономии «category». Результат выводится на экран в виде массива.
Получение только слагов терминов
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$term_slugs = wp_get_object_terms( $object_ids, $taxonomies, array( 'fields' => 'slugs' ) );
print_r( $term_slugs );
В данном примере мы получаем только слаги терминов, связанных с объектом с ID 123 в таксономии «category». Результат выводится на экран в виде массива.
Получение только количества совпадающих терминов
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$term_count = wp_get_object_terms( $object_ids, $taxonomies, array( 'fields' => 'count' ) );
echo $term_count;
В данном примере мы получаем только количество терминов, связанных с объектом с ID 123 в таксономии «category». Результат выводится на экран.
Получение родительских терминов по идентификатору
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$parent_terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'parent' => 0 ) );
if ( ! empty( $parent_terms ) && ! is_wp_error( $parent_terms ) ) {
foreach ( $parent_terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем родительские термины, связанные с объектом с ID 123 в таксономии «category». Результат выводится на экран.
Получение родительских терминов по названию
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$parent_terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'parent' => 'parent_term_name' ) );
if ( ! empty( $parent_terms ) && ! is_wp_error( $parent_terms ) ) {
foreach ( $parent_terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем родительские термины, связанные с объектом с ID 123 в таксономии «category», где родительский термин имеет название «parent_term_name». Результат выводится на экран.
Получение родительских терминов по слагу
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$parent_terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'parent' => 'parent_term_slug' ) );
if ( ! empty( $parent_terms ) && ! is_wp_error( $parent_terms ) ) {
foreach ( $parent_terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем родительские термины, связанные с объектом с ID 123 в таксономии «category», где родительский термин имеет слаг «parent_term_slug». Результат выводится на экран.
Получение дочерних терминов по идентификатору
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$child_terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'child_of' => 456 ) );
if ( ! empty( $child_terms ) && ! is_wp_error( $child_terms ) ) {
foreach ( $child_terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем дочерние термины, связанные с объектом с ID 123 в таксономии «category», где родительский термин имеет ID 456. Результат выводится на экран.
Получение дочерних терминов по названию
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$child_terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'child_of' => 'parent_term_name' ) );
if ( ! empty( $child_terms ) && ! is_wp_error( $child_terms ) ) {
foreach ( $child_terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем дочерние термины, связанные с объектом с ID 123 в таксономии «category», где родительский термин имеет название «parent_term_name». Результат выводится на экран.
Получение дочерних терминов по слагу
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$child_terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'child_of' => 'parent_term_slug' ) );
if ( ! empty( $child_terms ) && ! is_wp_error( $child_terms ) ) {
foreach ( $child_terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем дочерние термины, связанные с объектом с ID 123 в таксономии «category», где родительский термин имеет слаг «parent_term_slug». Результат выводится на экран.
Получение терминов с определенным мета-ключом
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$meta_key = 'meta_key_name'; // название мета-ключа
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'meta_key' => $meta_key ) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем термины, связанные с объектом с ID 123 в таксономии «category», у которых есть мета-ключ с названием «meta_key_name». Если термины найдены и нет ошибок, то мы выводим их названия.
Получение терминов с определенным мета-значением
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$meta_key = 'meta_key_name'; // название мета-ключа
$meta_value = 'meta_value'; // значение мета-ключа
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'meta_key' => $meta_key, 'meta_value' => $meta_value ) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем термины, связанные с объектом с ID 123 в таксономии «category», у которых мета-ключ с названием «meta_key_name» имеет значение «meta_value». Если термины найдены и нет ошибок, то мы выводим их названия.
Получение терминов с определенным мета-ключом и значением
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$meta_query = array(
array(
'key' => 'meta_key_name',
'value' => 'meta_value',
'compare' => '='
)
);
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'meta_query' => $meta_query ) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем термины, связанные с объектом с ID 123 в таксономии «category», у которых мета-ключ с названием «meta_key_name» имеет значение «meta_value». Если термины найдены и нет ошибок, то мы выводим их названия.
Получение терминов, у которых есть потомки
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'childless' => false ) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем термины, связанные с объектом с ID 123 в таксономии «category», у которых есть потомки. Если термины найдены и нет ошибок, то мы выводим их названия.
Получение терминов, у которых нет потомков
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // название таксономии
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'childless' => true ) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем термины, связанные с объектом с ID 123 в таксономии «category», у которых нет потомков. Если термины найдены и нет ошибок, то мы выводим их названия.
Получение терминов, связанных с объектами определенного типа
$object_ids = array( 123, 456 ); // массив ID объектов
$taxonomies = array( 'category', 'post_tag' ); // массив названий таксономий
$terms = wp_get_object_terms( $object_ids, $taxonomies );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
В данном примере мы получаем все термины, связанные с объектами с ID 123 и 456 в таксономиях «category» и «post_tag». Если термины найдены и нет ошибок, то мы выводим их названия.
Вопросы и ответы
Как получить все термины, связанные с объектом или объектами?
Для получения всех терминов, связанных с определенным объектом или объектами, используйте функцию wp_get_object_terms(). Эта функция принимает следующие параметры:
$object_ids: ID или массив ID объектов, с которыми связаны термины.$taxonomies: название или массив названий таксономий, из которых нужно получить термины.$args: дополнительные аргументы для настройки запроса (необязательно).
Функция возвращает массив терминов (WP_Term[]), количество терминов в виде числовой строки (int), или объект WP_Error, если указанные таксономии не существуют.
Пример кода:
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // таксономия
$terms = wp_get_object_terms( $object_ids, $taxonomies );
if ( ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name;
}
}
Как получить количество терминов, связанных с объектом или объектами?
Для получения количества терминов, связанных с определенным объектом или объектами, можно использовать функцию wp_get_object_terms() с параметром count установленным в true.
Пример кода:
$object_ids = array( 123, 456 ); // массив ID объектов
$taxonomies = 'category'; // таксономия
$count = wp_get_object_terms( $object_ids, $taxonomies, array( 'count' => true ) );
echo 'Количество терминов: ' . $count;
Как получить только ID терминов, связанных с объектом или объектами?
Для получения только ID терминов, связанных с определенным объектом или объектами, можно использовать функцию wp_get_object_terms() с параметром fields установленным в 'ids'.
Пример кода:
$object_ids = 123; // ID объекта
$taxonomies = 'category'; // таксономия
$term_ids = wp_get_object_terms( $object_ids, $taxonomies, array( 'fields' => 'ids' ) );
foreach ( $term_ids as $term_id ) {
echo $term_id;
}
Как отсортировать термины по определенному полю?
Для сортировки терминов по определенному полю, необходимо использовать параметр orderby функции wp_get_object_terms(). В качестве значения параметра orderby можно указать одно из следующих полей: ‘name’, ‘slug’, ‘term_group’, ‘term_id’, ‘id’, ‘description’, ‘parent’ или ‘term_order’.
Пример кода:
$terms = wp_get_object_terms( $object_ids, $taxonomies, array(
'orderby' => 'name',
) );
Как скрыть термины, которые не привязаны к постам?
Для скрытия терминов, которые не привязаны к постам, необходимо использовать параметр hide_empty функции wp_get_object_terms(). В качестве значения параметра hide_empty можно указать true или false.
Пример кода:
$terms = wp_get_object_terms( $object_ids, $taxonomies, array(
'hide_empty' => true,
) );
Как включить только определенные термины по их ID?
Для включения только определенных терминов по их ID, необходимо использовать параметр include функции wp_get_object_terms(). В качестве значения параметра include необходимо указать массив или строку с ID терминов, которые нужно включить.
Пример кода:
$terms = wp_get_object_terms( $object_ids, $taxonomies, array(
'include' => array( 1, 2, 3 ),
) );
Как исключить определенные термины по их ID?
Для исключения определенных терминов по их ID можно использовать параметр exclude. В этом параметре нужно указать массив или строку с ID терминов, которые нужно исключить. Например:
$exclude_terms = array(1, 2, 3);
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'exclude' => $exclude_terms ) );
Как получить только имена терминов?
Для получения только имен терминов можно использовать параметр fields со значением 'names'. Например:
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'fields' => 'names' ) );
Как получить только слаги терминов?
Для получения только слагов терминов можно использовать параметр fields со значением 'slugs'. Например:
$terms = wp_get_object_terms( $object_ids, $taxonomies, array( 'fields' => 'slugs' ) );
Функция
wp_get_object_terms()позволяет получить термины, связанные с заданными объектами, в указанных таксономиях. Она возвращает массив терминов, количество терминов в виде числовой строки или WP_Error, если какая-либо из таксономий не существует. Функция имеет множество параметров, которые позволяют настроить запрос и получить нужные данные. Это полезная функция для работы с таксономиями в WordPress.
Связанные элементы
- Функция
wp_get_post_terms(): Извлекает термины, связанные с определенным сообщением. - Функция
wp_get_post_categories(): Извлекает категории, связанные с определенным сообщением. - Функция
wp_get_post_tags(): Извлекает метки, связанные с определенным сообщением