Функция get_the_terms()
используется для получения терминов (элементов таксономии), связанных с указанной записью в WordPress. Она возвращает массив объектов WP_Term
, которые содержат информацию о терминах, таких как ID, имя, слаг и другие данные.
get_the_terms( int|WP_Post $post, string $taxonomy ): WP_Term[]|false|WP_Error
Параметры
- $post (обязательный)
ID записи или объект записи (WP_Post
), для которой нужно получить термины. - $taxonomy (обязательный)
Название таксономии, для которой нужно получить термины (например,category
,post_tag
, или произвольная таксономия).
Возвращаемое значение
- WP_Term[] — массив объектов
WP_Term
в случае успеха. - false — если термины для записи не найдены или запись не существует.
- WP_Error — в случае ошибки (например, если указанная таксономия не существует).
Свойства объекта WP_Term
При успешном вызове функция возвращает массив объектов WP_Term
. Вот основные свойства этого объекта:
- term_id — ID термина.
- name — имя термина.
- slug — слаг термина.
- term_group — группа терминов.
- term_taxonomy_id — ID записи в таблице таксономии.
- taxonomy — таксономия, к которой относится термин.
- description — описание термина.
- parent — ID родительского термина.
- count — количество записей, связанных с этим термином.
- filter — фильтр для термина.
Пример 1: Получение списка терминов таксономии
В этом примере выводится список терминов для таксономии category
для записи с ID 42:
$terms = get_the_terms( 42, 'category' );
if ( $terms && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo $term->name . '<br>';
}
}
Результат:
Новости
Технологии
Разработки
Пример 2: Получение терминов и вывод в строку
Этот пример выводит термины таксономии post_tag
в виде строки, разделенной запятыми:
$terms = get_the_terms( get_the_ID(), 'post_tag' );
if ( $terms && ! is_wp_error( $terms ) ) {
$term_names = wp_list_pluck( $terms, 'name' );
echo implode( ', ', $term_names );
}
Результат:
WordPress, PHP, Программирование
Пример 3: Вывод терминов произвольной таксономии с ссылками
Здесь мы выводим термины произвольной таксономии genres
с гиперссылками:
$terms = get_the_terms( get_the_ID(), 'genres' );
if ( $terms && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo '<a href="' . get_term_link( $term ) . '">' . $term->name . '</a><br>';
}
}
Результат:
<a href="https://example.com/genre/rock">Рок</a><br>
<a href="https://example.com/genre/pop">Поп</a><br>
Пример 4: Вывод категорий и тегов с использованием wp_list_pluck()
Этот пример показывает, как объединить категории и теги в одну строку:
// Получаем категории
$categories = get_the_terms( get_the_ID(), 'category' );
$category_names = $categories && ! is_wp_error( $categories ) ? wp_list_pluck( $categories, 'name' ) : [];
// Получаем теги
$tags = get_the_terms( get_the_ID(), 'post_tag' );
$tag_names = $tags && ! is_wp_error( $tags ) ? wp_list_pluck( $tags, 'name' ) : [];
// Объединяем категории и теги
$terms = array_merge( $category_names, $tag_names );
// Выводим
echo implode( ', ', $terms );
Результат:
Новости, Технологии, WordPress, PHP
Пример 5: Вывод UL-списка терминов
Для отображения терминов таксономии styles
в виде списка с маркировкой:
$terms = get_the_terms( get_the_ID(), 'styles' );
if ( $terms && ! is_wp_error( $terms ) ) {
echo '<ul>';
foreach ( $terms as $term ) {
echo '<li>' . esc_html( $term->name ) . '</li>';
}
echo '</ul>';
}
Результат:
<ul>
<li>Минимализм</li>
<li>Современный</li>
</ul>
Заключение
Функция get_the_terms()
является важным инструментом для получения и работы с терминами таксономий в WordPress. Она предоставляет гибкие возможности для отображения данных, будь то категории, метки или произвольные таксономии. Используя объекты WP_Term
и их свойства, можно легко адаптировать вывод терминов под любые нужды сайта.