Получение списка терминов с функцией get_the_term_list()

Получение списка терминов с помощью функции get_the_term_list()

Функция get_the_term_list() в WordPress позволяет отображать ссылки на термины таксономии (например, метки), связанные с определенной записью. Эта функция может использоваться в цикле WordPress, чтобы показать метки каждого поста, разделенные запятыми. Кроме того, можно выводить элементы любой пользовательской таксономии.

Основные сведения

  • Используется для: получения терминов с помощью get_the_terms().
  • Применяется в: get_the_tag_list(), the_terms().

Время выполнения

  • 1 раз: 0.004471 сек (очень медленно)
  • 50000 раз: 5.31 сек (быстро)

Оптимизировано для версии PHP 7.1.2 и WordPress 4.7.3.

Хуки функции

  • term_links-(taxonomy)
  • term_links-category
  • term_links-post_tag
  • term_links-post_format

Возвращаемое значение

Функция возвращает:

  • Строку — список терминов таксономии с ссылками на соответствующие архивы.
  • false — если термины не были найдены.
  • WP_Error — если возникла ошибка при получении ссылки на любой из терминов. Этот случай редкий и связан с ошибкой в структуре WordPress.

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

get_the_term_list( $post_id, $taxonomy, $before, $sep, $after );
  • $post_id (int) — ID поста. Обязательный параметр.
  • $taxonomy (string) — название таксономии. Обязательный параметр.
  • $before (string) — строка, добавляемая перед терминами. По умолчанию: ''.
  • $sep (string) — строка, используемая между терминами. По умолчанию: ''.
  • $after (string) — строка, добавляемая после терминов. По умолчанию: ''.

Примеры

Пример 1: Отображение списка элементов таксономии

Вы можете использовать следующий код в цикле WordPress, чтобы показать элементы таксономии "персоны" для каждого поста:

ID, 'people', 'Знаменитости: ', ', ', '' ); ?>

Этот код выведет примерно следующий список для каждого поста:

Знаменитости: Эминем, Дуэйн Джонсон,

Пример 2: Получение списка в формате UL

Этот пример показывает, как вывести элементы таксо��омии "стили" в виде ненумерованного списка:

echo get_the_term_list( $post->ID, 'styles', '
  • ', ',
  • ', '
' );

Результат будет выглядеть следующим образом:

Изменения

Функция была введена в версии 2.5.0.

Код функции

function get_the_term_list( $post_id, $taxonomy, $before = '', $sep = '', $after = '' ) {
    $terms = get_the_terms( $post_id, $taxonomy );

    if ( is_wp_error( $terms ) ) {
        return $terms;
    }

    if ( empty( $terms ) ) {
        return false;
    }

    $links = array();

    foreach ( $terms as $term ) {
        $link = get_term_link( $term, $taxonomy );
        if ( is_wp_error( $link ) ) {
            return $link;
        }
        $links[] = '';
    }

    $term_links = apply_filters( "term_links-{$taxonomy}", $links );

    return $before . implode( $sep, $term_links ) . $after;
}

В этом коде мы сначала получаем термины, связанные с постом. Если возникла ошибка или термины отсутствуют, функция возвращает соответствующее значение. В противном случае она создает массив ссылок и возвращает его в нужном формате.

Связанные функции

  • get_term_parents_list()
  • wp_dropdown_categories()
  • wp_dropdown_pages()
  • wp_dropdown_users()
  • wp_get_archives()
  • wp_get_list_item_separator()
  • wp_list_authors()
  • wp_list_bookmarks()
  • wp_list_categories()
  • wp_list_comments()
  • wp_list_pages()
  • wp_page_menu()
  • wp_tag_cloud()
  • wp_terms_checklist()

Эти функции могут помочь вам лучше управлять таксономиями и терминами в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *