Отображение категорий и подкатегорий с названием и описанием в category.php
У меня следующая задача для клиента. Может кто-то предложить возможное решение?
На этом сайте есть Категории и Подкатегории
Кат1
-Подкат1
-Подкат2
-Подкат3
Кат2
-Подкат1
-Подкат2
-Подкат3
ЧТО МНЕ НУЖНО:
- При нажатии на Кат1 или Кат2, нужно отображать примерно следующее:
- Повторять это действие, пока у категории и подкатегории есть записи! (важно)
После нажатия на эти подкатегории, должна генерироваться страница со всеми записями из этой подкатегории.
P.S.: Было бы здорово, если бы вы могли подсказать, как это сделать. И как я могу поместить переменные в DIV из моего category.php (get_the_title
; get_the_description
..)

Насколько я понимаю, у вас есть список родительских категорий и подкатегорий, которые выглядят как меню. Для вашего первого скриншота:
Кат1 -Подкат1 -Подкат2 -Подкат3
Кат2 -Подкат1 -Подкат2 -Подкат3
Предполагая, что у вас только два уровня категорий, вы можете использовать этот код для их отображения. Обратите внимание, что его можно использовать вне цикла:
<ul class="category-sidebar">
<?php
$get_parent_cats = array(
'parent' => '0' //получаем только категории верхнего уровня
);
$all_categories = get_categories( $get_parent_cats ); //получаем родительские категории
foreach( $all_categories as $single_category ){
//для каждой категории получаем ID
$catID = $single_category->cat_ID;
echo '<li><a href=" ' . get_category_link( $catID ) . ' ">' . $single_category->name . '</a>'; //название и ссылка категории
$get_children_cats = array(
'child_of' => $catID //получаем дочерние категории, используя переменную catID
);
$child_cats = get_categories( $get_children_cats ); //получаем дочерние категории
echo '<ul class="children">';
foreach( $child_cats as $child_cat ){
//для каждой дочерней категории получаем ID
$childID = $child_cat->cat_ID;
//для каждой дочерней категории выводим ссылку и название
echo '<a href=" ' . get_category_link( $childID ) . ' ">' . $child_cat->name . '</a>';
}
echo '</ul></li>';
} //конец логики работы с категориями ?>
</ul><!--конец category-sidebar-->
Теперь для вашего второго скриншота, я предполагаю, что при клике на родительскую категорию из меню выше будет отображаться страница с каждой подкатегорией и её описанием.
Обратитесь к руководству, которое я оставил в комментариях, по использованию условных операторов в category.php. В архиве вы будете проверять, загружается ли родительская категория или подкатегория. Если это подкатегория, показываем цикл записей, если родительская — страницу с подкатегориями и их описаниями. Вот как будет выглядеть код для подкатегорий и их описаний в цикле:
<?php
//для текущей категории на странице архива получаем ID
$thisID = get_query_var('cat');
$get_children_cats = array(
'child_of' => $thisID //получаем дочерние категории, используя переменную thisID
);
$child_cats = get_categories( $get_children_cats ); //получаем дочерние категории
foreach( $child_cats as $child_cat ){
//для каждой дочерней категории получаем ID
$childID = $child_cat->cat_ID;
//для каждой дочерней категории выводим ссылку, название и описание
echo '<div class="child-wrap"><h2><a href=" ' . get_category_link( $childID ) . ' ">' . $child_cat->name . '</a></h2><br/>';
echo '<p>' . $child_cat->category_description . '</p></div>';
} //конец логики работы с категориями ?>
Я понимаю, что кода довольно много, но похоже, вам нужно выполнить несколько задач. Единственное, что вам нужно доработать самостоятельно — это настройка архива для отображения списка записей или страницы, как на втором скриншоте. Надеюсь, это поможет лучше, чем ресурсы в комментариях, которые я предоставил ранее. Удачи!

Я также написал руководство по этой теме. Посмотрите, пожалуйста https://www.cloudways.com/blog/get-categories-and-subcategories-in-wordpress/
