# get_the_category_list()

URL: https://chugunov.pro/api-wordpress/functions/get_the_category_list/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 1.5.1.

## Сигнатура

```php
get_the_category_list( string $separator = '', string $parents = '', int|false $post_id = false ): string
```

## Описание

Обычно используется для кратких списков рубрик с разделителями (например, через запятую) как часть метаданных записи.
Более мощную функцию на основе списка см. в wp_list_categories() .
См. alsowp_list_categories()

## Параметры

- `$separator` `string` — необязательный, по умолчанию `''`. Разделитель между рубриками. По умолчанию ссылки помещаются в маркированный список. Пустая строка приводит к поведению по умолчанию.
- `$parents` `string` — необязательный, по умолчанию `''`. Как отображать родительские рубрики. Принимает 'multiple', 'single' или пустое значение.
- `$post_id` `int|false` — необязательный, по умолчанию `false`. ID записи, для которой нужно получить рубрики. По умолчанию используется текущая запись.

## Возвращаемое значение

`string`

## Исходный код

Файл: `wp-includes/category-template.php:141`

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

	if ( ! is_object_in_taxonomy( get_post_type( $post_id ), 'category' ) ) {
		/** This filter is documented in 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 An array of the post's categories.
	 * @param int|false $post_id    ID of the post to retrieve categories for.
	 *                              When `false`, defaults to the current post in the loop.
	 */
	$categories = apply_filters( 'the_category_list', get_the_category( $post_id ), $post_id );

	if ( empty( $categories ) ) {
		/** This filter is documented in 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 .= "\n\t<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 the category or list of categories.
	 *
	 * @since 1.2.0
	 *
	 * @param string $thelist   List of categories for the current post.
	 * @param string $separator Separator used between the categories.
	 * @param string $parents   How to display the category parents. Accepts 'multiple',
	 *                          'single', or empty.
	 */
	return apply_filters( 'the_category', $thelist, $separator, $parents );
}
```

## История изменений

- 1.5.1 — Introduced.

## Связанные

Использует: [`get_the_category`](https://chugunov.pro/api-wordpress/functions/get_the_category/), [`get_category_parents`](https://chugunov.pro/api-wordpress/functions/get_category_parents/), [`get_category_link`](https://chugunov.pro/api-wordpress/functions/get_category_link/), [`is_object_in_taxonomy`](https://chugunov.pro/api-wordpress/functions/is_object_in_taxonomy/), [`get_post_type`](https://chugunov.pro/api-wordpress/functions/get_post_type/), `WP_Rewrite::using_permalinks`, [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`esc_url`](https://chugunov.pro/api-wordpress/functions/esc_url/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/).
Используется в: [`the_category`](https://chugunov.pro/api-wordpress/functions/the_category/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/get_the_category_list/
