Функция get_the_category_list()
используется для получения списка категорий записи в виде HTML-списка или в произвольном формате. Это удобный инструмент для вывода категорий в шаблонах записей WordPress.
get_the_category_list( string $separator = '', string $parents = '', int $post_id = false ): string
Описание параметров
- $separator (необязательный)
Разделитель между категориями. По умолчанию категории выводятся в виде списка<ul>
. Если указать строку-разделитель, категории будут разделены этой строкой.По умолчанию: пустая строка (выводит список<ul>
). - $parents (необязательный)
Как отображать родительские категории. Допустимые значения:'multiple'
: отображать родительские категории отдельно.'single'
: отображать только конечную категорию, но с полным путём (например, «Технологии/Программирование»).- Пустая строка: отображаются только конечные категории.
- $post_id (необязательный)
ID поста, для которого нужно получить список категорий. По умолчанию используется текущий пост в цикле WordPress.По умолчанию: текущий пост.
Возвращаемое значение
Возвращает строку с HTML-кодом списка категорий, каждая категория представлена как ссылка.
Пример 1: Список категорий текущего поста, разделённых запятой
Этот пример выводит категории записи, разделённые запятыми, внутри WordPress-цикла:
$categories_list = get_the_category_list(', ');
echo '<p>Категории: ' . $categories_list . '</p>';
Результат:
<p>Категории:
<a href="/category/technology" title="Просмотреть все записи в Технологии" rel="category tag">Технологии</a>,
<a href="/category/programming" title="Просмотреть все записи в Программирование" rel="category tag">Программирование</a>
</p>
Пример 2: Список категорий в виде <ul>
Если параметр $separator
оставить пустым, функция автоматически создаст список категорий в виде ненумерованного списка <ul>
:
echo get_the_category_list();
Результат:
<ul class="post-categories">
<li><a href="/category/technology" title="Просмотреть все записи в Технологии" rel="category tag">Технологии</a></li>
<li><a href="/category/programming" title="Просмотреть все записи в Программирование" rel="category tag">Программирование</a></li>
</ul>
Пример 3: Отображение категории с указанием родительских категорий
Если пост принадлежит дочерней категории, можно отобразить её вместе с родительскими категориями, используя параметр 'single'
:
$categories_list = get_the_category_list(', ', 'single');
echo '<p>Категории: ' . $categories_list . '</p>';
Результат:
<p>Категории:
<a href="/category/technology/programming" title="Просмотреть все записи в Программирование" rel="category tag">Технологии/Программирование</a>
</p>
Пример 4: Отображение родительских и дочерних категорий отдельно
Используя параметр 'multiple'
, можно отобразить родительские и дочерние категории в виде отдельных ссылок:
$categories_list = get_the_category_list(', ', 'multiple');
echo '<p>Категории: ' . $categories_list . '</p>';
Результат:
<p>Категории:
<a href="/category/technology" title="Просмотреть все записи в Технологии" rel="category tag">Технологии</a>,
<a href="/category/programming" title="Просмотреть все записи в Программирование" rel="category tag">Программирование</a>
</p>
Пример 5: Получение категорий для определённого поста
Если нужно вывести категории для определённой записи (не текущей в цикле), можно передать ID поста в параметр $post_id
:
$post_id = 123; // ID поста
$categories_list = get_the_category_list(', ', '', $post_id);
echo '<p>Категории поста ' . $post_id . ': ' . $categories_list . '</p>';
Пример 6: Использование функции в теме WordPress
В теме WordPress можно использовать get_the_category_list()
для вывода категорий, как это реализовано в теме Twenty Eleven:
$categories_list = get_the_category_list(', ');
echo sprintf( __( 'Эта запись была опубликована в %s.', 'twentyeleven' ), $categories_list );
Заключение
Функция get_the_category_list()
предоставляет гибкий способ отображения категорий записи в WordPress. Вы можете настраивать вывод как в виде списка <ul>
, так и разделяя категории любыми символами, а также выбирать, как отображать родительские и дочерние категории.