get_the_terms()

Извлекает термины таксономии, прикрепленные к записи
Функция WordPress
INT 2.5.0
WordPress Icon

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

Функция get_the_terms() используется для получения терминов (категорий) таксономии, которые прикреплены к определенному посту в WordPress.

Она возвращает массив объектов WP_Term в случае успеха, false, если термины отсутствуют или пост не существует, и WP_Error в случае ошибки.

Использование

get_the_terms( int|WP_Post $post, string $taxonomy ): WP_Term[]|false|WP_Error

Эта функция принимает два обязательных параметра:

  • $post (int|WP_Post) — ID или объект поста, для которого нужно получить термины.
  • $taxonomy (string) — название таксономии, для которой нужно получить термины.

Функция возвращает массив объектов WP_Term в случае успеха, false, если термины отсутствуют или пост не существует, и WP_Error в случае ошибки.

<?php
$post_id = 123; // ID поста
$taxonomy = 'category'; // название таксономии
$terms = get_the_terms( $post_id, $taxonomy ); // получаем термины
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        $term_name = $term->name; // получаем название термина
        $term_link = get_term_link( $term ); // получаем ссылку на термин
        echo '<a href="' . esc_url( $term_link ) . '">' . esc_html( $term_name ) . '</a> ';
    }
}
?>

В этом примере мы получаем термины категории для поста с ID 123 и выводим их названия и ссылки.

Примеры использования

Получение списка терминов, привязанных к посту


$post_id = 123; // ID поста
$taxonomy = 'category'; // название таксономии
$terms = get_the_terms( $post_id, $taxonomy );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo $term->name; // выводим название термина
    }
}

В данном примере мы получаем список терминов, привязанных к посту с ID 123 в таксономии «category». Функция get_the_terms() возвращает массив объектов WP_Term, представляющих собой термины таксономии. Мы проверяем, что массив не пустой и не содержит ошибок, и затем выводим название каждого термина.

Отображение терминов определенной таксономии


$post_id = get_the_ID(); // ID текущего поста
$taxonomy = 'post_tag'; // название таксономии
$terms = get_the_terms( $post_id, $taxonomy );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo $term->name; // выводим название термина
    }
}

В этом примере мы получаем список терминов, привязанных к текущему посту, используя функцию get_the_ID() для получения ID текущего поста. Затем мы выводим название каждого термина из таксономии «post_tag».

Проверка наличия терминов у поста


$post_id = 456; // ID поста
$taxonomy = 'category'; // название таксономии
$terms = get_the_terms( $post_id, $taxonomy );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    echo 'Пост содержит термины.';
} else {
    echo 'Пост не содержит терминов или не существует.';
}

В данном примере мы проверяем наличие терминов у поста с ID 456 в таксономии «category». Функция get_the_terms() возвращает массив терминов, поэтому мы проверяем, что массив не пустой и не содержит ошибок, и выводим соответствующее сообщение.

Обработка ошибок при использовании функции get_the_terms()


$post_id = 789; // ID поста
$taxonomy = 'category'; // название таксономии
$terms = get_the_terms( $post_id, $taxonomy );
if ( is_wp_error( $terms ) ) {
    echo 'Произошла ошибка: ' . $terms->get_error_message();
}

В этом примере мы обрабатываем возможные ошибки при использовании функции get_the_terms(). Если функция возвращает объект WP_Error, мы выводим сообщение об ошибке с помощью метода get_error_message().

Вопросы и ответы

Как получить список терминов, привязанных к посту?

Функция get_the_terms() позволяет получить список терминов, которые привязаны к определенному посту.

$post_id = get_the_ID(); // Получаем ID текущего поста
$terms = get_the_terms( $post_id, 'taxonomy_name' ); // Получаем список терминов
if ( $terms ) {
    foreach ( $terms as $term ) {
        echo '<li>' . $term->name . '</li>'; // Выводим название термина
    }
}

Как получить список терминов определенной таксономии, привязанных к посту?

Если нужно получить список терминов определенной таксономии, привязанных к посту, необходимо указать название таксономии вторым параметром функции get_the_terms().

$post_id = get_the_ID(); // Получаем ID текущего поста
$terms = get_the_terms( $post_id, 'taxonomy_name' ); // Получаем список терминов определенной таксономии
if ( $terms ) {
    foreach ( $terms as $term ) {
        echo '<li>' . $term->name . '</li>'; // Выводим название термина
    }
}

Как получить список терминов без проверки наличия поста?

Если нужно получить список терминов без проверки наличия поста, можно использовать ID поста или объект поста в качестве первого параметра функции get_the_terms().

$post_id = 123; // Задаем ID поста
$terms = get_the_terms( $post_id, 'taxonomy_name' ); // Получаем список терминов
if ( $terms ) {
    foreach ( $terms as $term ) {
        echo '<li>' . $term->name . '</li>'; // Выводим название термина
    }
}

Как обработать ошибку при использовании функции get_the_terms()?

Если функция get_the_terms() возвращает WP_Error, это означает, что произошла ошибка при выполнении запроса. Чтобы обработать эту ошибку, можно использовать конструкцию if-else:


$terms = get_the_terms( $post, $taxonomy );
if ( ! is_wp_error( $terms ) ) {
    // Обработка успешного запроса
} else {
    $error_message = $terms->get_error_message();
    echo "Произошла ошибка: " . $error_message;
}

Как получить список терминов без проверки наличия таксономии?

Если вам необходимо получить список терминов без проверки наличия таксономии, вы можете использовать функцию get_terms(). Пример кода:


$terms = get_terms( $taxonomy );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo $term->name;
    }
}

Как получить список терминов без проверки наличия терминов?

Если вам необходимо получить список терминов без проверки наличия терминов, вы можете использовать функцию wp_get_post_terms(). Пример кода:


$terms = wp_get_post_terms( $post, $taxonomy );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo $term->name;
    }
}

Как получить список терминов без проверки наличия ошибки?

Если вам необходимо получить список терминов без проверки наличия ошибки, вы можете использовать функцию wp_get_object_terms(). Пример кода:


$terms = wp_get_object_terms( $post->ID, $taxonomy );
if ( ! empty( $terms ) ) {
    foreach ( $terms as $term ) {
        echo $term->name;
    }
}

Функция get_the_terms() позволяет получить список терминов таксономии, привязанных к посту. При использовании этой функции необходимо учитывать возможность ошибок и проверять возвращаемые значения. В случае возникновения ошибки можно использовать функции get_terms(), wp_get_post_terms() или wp_get_object_terms() для получения списка терминов без проверки наличия таксономии, терминов или ошибки соответственно.

Связанные элементы

  • Функция get_the_category(): возвращает массив объектов категорий, к которым относится пост.
  • Функция get_post_type(): возвращает тип поста.
  • Функция get_post_meta(): возвращает значение мета-поля для указанного поста.
  • Функция get_permalink(): возвращает постоянную ссылку на пост.
  • Функция get_the_title(): возвращает заголовок поста.
  • Функция get_the_author_meta(): возвращает значение мета-поля автора для указанного поста.
  • Функция get_the_post_thumbnail(): возвращает HTML-код миниатюры поста.
  • Функция get_post_status(): возвращает статус поста.
  • Функция get_post_format(): возвращает формат поста.
  • Функция get_post_modified_time(): возвращает время последнего изменения поста.
Обсуждение