# Функция get_the_category_list() в WordPress
Функция get_the_category_list() позволяет получить ссылки на категории, к которым принадлежит пост, в виде HTML-списка или в указанном вами формате.
Эту функцию следует использовать внутри цикла WordPress (Loop) или с помощью параметра $post_id.
## Использование функции
Эта функция используется для быстрого получения списка категорий, разделенных запятыми, которые могут отображаться в метаинформации поста.
Если вам нужна более мощная и гибкая функция для работы со списками категорий, обратите внимание на wp_list_categories().
### Значения
- **Использует:** get_category_parents(), get_the_category()
- **Используется в:** the_category()
## Возвращаемое значение
Функция возвращает строку с HTML-кодом ссылок на категории.
## Пример использования
### Синтаксис
```php
get_the_category_list( $separator, $parents, $post_id );
-
$separator(строка) — разделитель между ссылками. По умолчанию:''(отображаются ссылки в виде списка). -
$parents(строка) — как отображать ссылки, если текущая категория является дочерней. Возможные значения:multiple— отображает ссылки на родительские и дочерние категории отдельно.single— отображает одну ссылку на категорию поста, но вся структура вложенности категорий становится связующей.
По умолчанию:
''— просто отображает категории, к которым принадлежит пост (без учета вложенности). -
$post_id(целое число) — ID поста, категории которого вы хотите отобразить. По умолчанию:false— текущий пост ($post->ID).
Примеры
1. Список категорий текущего поста, разделенных запятой
$cats = get_the_category_list( ', ' );
echo 'Категории: '. $cats .'
';
Вывод:
Категории:
WordPress,
Компьютеры,
Блоггинг
2. Дополнительные примеры
См. полное описание функции the_category().
Примечания
- Для получения более детализированного списка категорий можно использовать
wp_list_categories(). - Глобальная переменная:
$wp_rewrite.
Изменения
- С версии 1.5.1 — функция была впервые представлена.
Код функции
Во�� как выглядит сама функция:
function get_the_category_list( $separator = '', $parents = '', $post_id = false ) {
global $wp_rewrite;
if ( ! is_object_in_taxonomy( get_post_type( $post_id ), 'category' ) ) {
return apply_filters( 'the_category', '', $separator, $parents );
}
$categories = apply_filters( 'the_category_list', get_the_category( $post_id ), $post_id );
if ( empty( $categories ) ) {
return apply_filters( 'the_category', __( 'Без категории' ), $separator, $parents );
}
$rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"';
$thelist = '';
if ( '' === $separator ) {
$thelist .= '';
foreach ( $categories as $category ) {
$thelist .= "nt- ";
switch ( strtolower( $parents ) ) {
case 'multiple':
if ( $category->parent ) {
$thelist .= get_category_parents( $category->parent, true, $separator );
}
$thelist .= '' . $category->name . '
';
break;
case 'single':
$thelist .= '';
if ( $category->parent ) {
$thelist .= get_category_parents( $category->parent, false, $separator );
}
$thelist .= $category->name . '';
break;
case '':
default:
$thelist .= '' . $category->name . '';
}
}
$thelist .= '
';
} 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 .= '' . $category->name . '';
break;
case 'single':
$thelist .= '';
if ( $category->parent ) {
$thelist .= get_category_parents( $category->parent, false, $separator );
}
$thelist .= "$category->name";
break;
case '':
default:
$thelist .= '' . $category->name . '';
}
++$i;
}
}
return apply_filters( 'the_category', $thelist, $separator, $parents );
}
Связанные функции
get_object_taxonomies()get_objects_in_term()get_the_category()get_the_tag_list()get_the_tags()- и другие.