WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

get_the_term_list()WP 2.5.0

Выводит список ссылок на элементы таксономии (например метки), относящиеся к определенному посту.

Функцию можно использовать внутри Цикла WordPress, например, для того, чтобы через запятую вывести метки каждого поста.

Вместо стандартных меток можно выводить элементы произвольных таксономий.

Работает на основе: get_the_terms()
Основа для: get_the_tag_list(), the_terms()
1 раз — 0.004471 сек (очень медленно) | 50000 раз — 5.31 сек (быстро) | PHP 7.1.2, WP 4.7.3

Возвращает

Строку|false|WP_Error.

  • Строка — список элементов таксономии в виде ссылок на соответствующие страницы архивов.

  • false — если не удалось получить элементы таксономии.

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

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

get_the_term_list( $id, $taxonomy, $before, $sep, $after );
$id(число/WP_Post) (обязательный)
ID поста, элементы таксономии которого нужно получить.
$taxonomy(строка) (обязательный)
Название таксономии, элементы которой нужно получить.
$before(строка)
Текст, который будет показан перед списком.
По умолчанию: ''
$sep(строка)
Текст-разделитель, который будет показан между выводимыми элементами (тегами).
По умолчанию: ''
$after(строка)
Замыкающий текст (текст в конце списка).
По умолчанию: ''

Примеры

0

#1 Список элементов таксономии

Такой код можно использовать внутри Цикла WordPress, чтобы вывести на экран элементы (метки) таксономии "heroes" для каждого поста:

<?php echo get_the_term_list( $post->ID, 'people', 'Знаменитости: ', ',', '' ); ?>

В результате мы получим примерно следующий список для каждого поста:

Знаменитости:
<a href="person1">Эминем</a>,
<a href="person2">Дуэйн Джонсон</a>,
...
0

#2 Получим UL список

Пример показывает как вывести элементы таксономии styles в виде маркированного
(ненумеровонного) списка.

echo get_the_term_list( $post->ID, 'styles', '<ul class="styles"><li>', ',</li><li>', '</li></ul>' );

Получим:

<ul class="styles">
	<li><a href="person1">Style 1</a>,</li>
	<li><a href="person2">Style 2</a></li>
</ul>

Список изменений

С версии 2.5.0 Введена.

Код get_the_term_list() WP 6.5.2

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[] = '<a href="' . esc_url( $link ) . '" rel="tag">' . $term->name . '</a>';
	}

	/**
	 * Filters the term links for a given taxonomy.
	 *
	 * The dynamic portion of the hook name, `$taxonomy`, refers
	 * to the taxonomy slug.
	 *
	 * Possible hook names include:
	 *
	 *  - `term_links-category`
	 *  - `term_links-post_tag`
	 *  - `term_links-post_format`
	 *
	 * @since 2.5.0
	 *
	 * @param string[] $links An array of term links.
	 */
	$term_links = apply_filters( "term_links-{$taxonomy}", $links );  // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

	return $before . implode( $sep, $term_links ) . $after;
}
5 комментариев
    Войти