get_the_term_list

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

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

Хуки из функции:
term_links-(taxonomy)
Возвращает

Строку/false/WP_Error.

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

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

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

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

get_the_term_list( $id, $taxonomy, $before, $sep, $after );
$id(число) (обязательный)
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>, 
...

Код из


wp-includes/category-template.php

WP 4.7.2

<?php
function get_the_term_list( $id, $taxonomy, $before = '', $sep = '', $after = '' ) {
	$terms = get_the_terms( $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 array $links An array of term links.
	 */
	$term_links = apply_filters( "term_links-{$taxonomy}", $links );

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

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *