Получение списка терминов с помощью функции 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-categoryterm_links-post_tagterm_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->name . '';
}
$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.