Функция get_the_category_list() в WordPress: синтаксис, примеры, изменения

# Функция 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 .= '';
} 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()
  • и другие.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *