Возвращает список элементов указанной таксономии, присвоенных к указанному посту в виде HTML-ссылок.
Если у поста нет терминов указанной таксономии, вернёт false
.
Если было передано название несуществующей таксономии, вернёт объект WP_Error.
Если вам недостаточно параметров этой функции, чтобы вывести термины в нужном формате, то рекомендую обратить внимание на функцию get_the_terms().
get_the_term_list( $post_id, $taxonomy, $before = '', $sep = '', $after = '' )
Параметры
- $post_id
- (целое) ID поста, термины которого нужно получить.
Если хотите вывести термины текущего поста в цикле, передайте в этот параметр функцию get_the_ID(). - $taxonomy
- (строка) Название таксономии.
- $before
- (строка) Текст или HTML, который добавляем перед терминами.
- $sep
- (строка) Чем разделить ссылки, по умолчанию не разделяются ничем.
- $after
- (строка) Текст или HTML, который добавляем после списка терминов.
Примеры
Базовый пример получения рубрик текущего поста:
echo get_the_term_list( get_the_ID(), 'category', 'Рубрики: ', ', ' ); // Рубрики: <a href="http:// ... /cat-1">Рубрика 1</a>, <a href="http:// ... /cat-2">Рубрика 2</a>, ...
Если вдруг вы хотите вывести список текстом, без ссылок, то можно воспользовать PHP-функцией strip_tags()
.
echo strip_tags( get_the_term_list( get_the_ID(), 'category', 'Рубрики: ', ', ' ) ); // Рубрики: Рубрика 1, Рубрика 2
Ещё вариант – можно немного заморочиться и вывести рубрики в виде маркированного списка <ul>
.
echo get_the_term_list( get_the_ID(), 'category', '<ul class="cats"><li>', // добавляем в начале '</li><li>', // разделитель '</li></ul>' // добавляем в конце ); /* <ul class="cats"> <li><a href="http:// ... /cat-1">Рубрика 1</a></li> <li><a href="http:// ... /cat-2">Рубрика 2</a></li> </ul> */
Хуки
term_links-{$taxonomy}
Перед тем, как массив ссылок будет объединён в одно целое, у нас есть возможность изменить его этим фильтром.
С версии 2.5.0
$term_links = apply_filters( "term_links-{$taxonomy}", $links );
Например удалим первый элемент массива:
add_filter( 'term_links-category', 'true_remove_first_link' ); function true_remove_first_link( $links ) { array_shift( $links ); return $liniks; }
Не знаете, как работать с фильтрами?
Источник: Блог Миши Рудрастых