wp_get_object_terms()

Извлекает термины, связанные с указанными объектами, в предоставленных таксономиях
Функция WordPress
INT 4.4.0, 4.2.0, 2.3.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Получение всех терминов, связанных с объектом
  4. Получение количества терминов, связанных с объектом
  5. Сортировка терминов по имени
  6. Ограничение результатов по количеству
  7. Получение только идентификаторов терминов
  8. Получение только названий терминов
  9. Получение только слагов терминов
  10. Получение только количества совпадающих терминов
  11. Получение родительских терминов по идентификатору
  12. Получение родительских терминов по названию
  13. Получение родительских терминов по слагу
  14. Получение дочерних терминов по идентификатору
  15. Получение дочерних терминов по названию
  16. Получение дочерних терминов по слагу
  17. Получение терминов с определенным мета-ключом
  18. Получение терминов с определенным мета-значением
  19. Получение терминов с определенным мета-ключом и значением
  20. Получение терминов, у которых есть потомки
  21. Получение терминов, у которых нет потомков
  22. Получение терминов, связанных с объектами определенного типа
  23. Вопросы и ответы
  24. Как получить все термины, связанные с объектом или объектами?
  25. Как получить количество терминов, связанных с объектом или объектами?
  26. Как получить только ID терминов, связанных с объектом или объектами?
  27. Как отсортировать термины по определенному полю?
  28. Как скрыть термины, которые не привязаны к постам?
  29. Как включить только определенные термины по их ID?
  30. Как исключить определенные термины по их ID?
  31. Как получить только имена терминов?
  32. Как получить только слаги терминов?
  33. Связанные элементы

Описание функции

Функция 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(): Извлекает метки, связанные с определенным сообщением
Обсуждение