get_the_category_list() WP 1.5.1

Отримує список категорій посту. Список виходить як посилання на категорії.

Потрібно застосовувати всередині циклу WordPress або використовувати параметр post_id (див. опис).

Щоб отримати список елементів довільної таксономії, можна використати аналогічну функцію get_the_term_list() .

Працює на основі:
get_category_parents() ,
get_the_category()
Основа для:
the_category()

Хуки з функції

Повертає

Строку. HTML-код посилань на категорію(и).

Використання

$cat_list = get_the_category_list($separator, $parents, $post_id);
$separator
(рядок)
Розділювач між посиланнями.


За промовчанням: виведе посилання у списку <ul>
$parents
(рядок)

Як показувати посилання, якщо поточна категорія є дочірньою. Може приймати:

  • multiple– показувати окремо посилання на батьківську та дочірню категорії, зберігаючи порядок (батько > предок);

  • single– показати одне посилання, на категорію в якій знаходиться пост, але текстом посилання стане вся структура вкладеності посту в категорії (батько/предок).

За замовчуванням: просто виводяться категорії, до яких належить пост (зв’язок не враховується)

$post_id
(число)
ID посту, категорії якого потрібно вивести. Доданий до версії 2.5.


За промовчанням $post->ID (поточний пост)

Приклади

0

#1 Список категорій поточного посту розділених комою:

Код потрібно використовувати у циклі WP:

$cats = get_the_category_list(', ');

echo '<p>Категорії: '. $cats .'</p>';

Отримаємо:

<p>Категорії:
<a href="/url" rel="nofollow ugc">WordPress</a>,
<a href="/url" rel="nofollow ugc">Computers</a>,
<a href="/url" rel="nofollow ugc">Blogging</a>
</p>
0

#2 Ще приклади

Дивіться опис функції the_category() .

нотатки

список змін

З версії 1.5.1Введено.

Код get_the_category_list() WP 6.0.2

function get_the_category_list( $separator = '', $parents = '', $post_id = false ) {
	global $wp_rewrite;

	if ( ! is_object_in_taxonomy( get_post_type( $post_id ), 'category' ) ) {
		/** Цей filter is documented в wp-includes/category-template.php */
		return apply_filters( 'the_category', '', $separator, $parents );
	}

	/**
	 * Filters the categories before building the category list.
	 *
	 * @ Since 4.4.0
	 *
	 * @param WP_Term[] $categories На array of the post's categories.
	 * @param int|bool $post_id ID post we're retrieving categories for.
	 * Якщо "false", ми вважаємо поточний пункт в прорив.
	 */
	$categories = apply_filters( 'the_category_list', get_the_category( $post_id ), $post_id );

	if ( empty( $categories ) ) {
		/** Цей filter is documented в wp-includes/category-template.php */
		return apply_filters( 'the_category', __( 'Uncategorized' ), $separator, $parents );
	}

	$rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"': 'rel="category"';

	$thelist = '';
	if ( '' === $separator ) {
		$thelist .= '<ul class="post-categories">';
		foreach ( $categories as $category ) {
			$thelist .= "nt<li>";
			switch (strtolower($parents)) {
				case 'multiple':
					if ( $category->parent ) {
						$thelist .= get_category_parents( $category->parent, true, $separator );
					}
					$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel. '>'. $category->name . '</a></li>';
					break;
				case 'single':
					$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel. '>';
					if ( $category->parent ) {
						$thelist .= get_category_parents( $category->parent, false, $separator );
					}
					$thelist .= $category->name . '</a></li>';
					break;
				case '':
				default:
					$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel. '>'. $category->name . '</a></li>';
			}
		}
		$thelist .= '</ul>';
	} else {
		$i = 0;
		foreach ( $categories as $category ) {
			if ( 0 < $i ) {
				$thelist. = $separator;
			}
			switch (strtolower($parents)) {
				case 'multiple':
					if ( $category->parent ) {
						$thelist .= get_category_parents( $category->parent, true, $separator );
					}
					$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel. '>'. $category->name . '</a>';
					break;
				case 'single':
					$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel. '>';
					if ( $category->parent ) {
						$thelist .= get_category_parents( $category->parent, false, $separator );
					}
					$thelist .= "$category->name</a>";
					break;
				case '':
				default:
					$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel. '>'. $category->name . '</a>';
			}
			++$i;
		}
	}

	/**
	 * Filters категорії або категорії категорії.
	 *
	 * @ Since 1.2.0
	 *
	 * @param string $thelist List of categories for the current post.
	 * @param string $separator Separator використовується між категоріями.
	 * @param string $parents Щоб відобразити категорії parents. Accepts 'multiple',
	 * 'single', або empty.
	 */
	return apply_filters( 'the_category', $thelist, $separator, $parents);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *