когда нечего делать, а творческая душа требует реализации и хочется что-то сделать или написать, то я пишу сюда или делаю что-то на этом сайте. Кому интересна web-разработка, wordpress и то что рядом с этим, то заходите на мой сайт и читайте всякое...
Йо-йо! Сегодня я расскажу как можно вывести список категорий в worpdress. Хоть эта тема, на мой взгляд, хорошо освещена до сих пор у многих людей возникают с ней трудности.
И так. Вывести список категорий или как их иначе называют рубрики можно двумя путями. Первый путь это сразу вывести html, а второй получить массив с объектами категорий. Хоть первый вариант и проще в нём есть серьёзный недостаток. Он либо может вывести всё в тэгах <li>, либо в виде ссылок через запятую. Это довольно простой вариант, но как правило нам нужно обернуть категорию во что-то другое, например в <div>. В этом случае нам подойдёт второй вариант. Ну начнём.
wp_list_categories
Данная функция выводит html на экран или возвращает его в переменную. Давайте сразу посмотрим пример.
<?php
$args = [
'echo' => true,
'style'=>'list',
'show_count' => false, // что-бы не показывало количество записей в категории
];
?>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
// Получим что-то типа этого
<ul>
<li><a href="http://exmpl.ru/cat-1">Название категории 1</a></li>
<li><a href="http://exmpl.ru/cat-2">Название категории 2</a></li>
</ul>
Таким образом мы получили ненумерованный список. Можно получить ссылки.
<?php
$args = [
'echo' => true,
'style'=>'none',
'show_count' => false, // что-бы не показывало количество записей в категории
];
?>
<?php wp_list_categories( $args ); ?>
// Получим что-то типа этого
<a href="http://exmpl.ru/cat-1">Название категории 1</a>, <br>
<a href="http://exmpl.ru/cat-2">Название категории 2</a>, <br>
У этой функции есть еще множество параметров, которые помогут вам структурировать список, их вы можете узнать в официальной документации или на wp-kama. Однако всё будет крутиться вокруг списков или ссылок и простого способа обернуть категорию, например, в <div> нет. Так что давайте рассмотрим второй способ.
get_categories()
Данная функция возвращает массив объектов содержащих информацию о категориях. И она лучше подходит для того, чтобы список ваших категорий обернуть в произвольные тэги. Рассмотрим пример.
$categoty->term_id // id термина таксономии
$categoty->name // Название категории
$categoty->slug // Слаг
$categoty->term_taxonomy_id
$categoty->taxonomy // category
$categoty->description // Описание рубрики
$categoty->parent // Родитель
$categoty->count // Количество записей
$categoty->cat_ID // ID рубрики
$categoty->category_count // Количество категорий
$categoty->category_description // Описание рубрики
$categoty->cat_name (Рубрика 1) // Название категории
$categoty->category_nicename (rubrika-1) // Никнэйм категории
$categoty->category_parent (0) // ID родительской категории
Вам, скорее всего нужно будет переформатировать ваш массив так, чтобы иметь иерархическую схему массива. Вы можете это сделать опираясь на $cat->cat_ID (id категории) и $cat->category_parent (id родительской категории). Тут у вас есть простор для творчества.
Ссылка на категорию
Чтобы получить ссылку на категорию в цикле воспользуйтесь функцией
Я давно хочу развить видеоверсию, но пока этого не получается из-за нехватки ресурсов. Сейчас я собираю деньги на новый компьютер и микрофон. Поддержи xaklant и ты увидишь полезные видео быстрее.