WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

get_the_term_list() WP 2.5

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

Функцию можно использовать внутри Цикла 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(строка)
Замыкающий текст (текст в конце списка).
По умолчанию: ''

Примеры

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

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

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

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

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

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

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

Код get_the_term_list() WP 5.5.1

wp-includes/category-template.php
<?php
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 filter name, `$taxonomy`, refers
	 * to the taxonomy slug.
	 *
	 * @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 . join( $sep, $term_links ) . $after;
}

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

Из метки: Список (wp_list списки)

Еще из метки: term (термины таксономий)

Еще из раздела: Для записей

Еще из тегов шаблона: Таксономии: рубрики, метки, ...

5 комментов