Подобрал для себя код для настройки категорий, возможно и вам сгодится.
Как вывести подкатегории текущей категории
Выводим подкатегории текущей категории, если у текущей категории нет подкатегорий выводим подкатегории родителя, а li текущей категории присваеваем class cat_active. Код вставляем в catecory.php или arhive.php
<?php $categories = get_categories('parent='.$cat.''); if ($categories) { echo '<ul>'; foreach ($categories as $category) { ?> <li><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li> <?php } echo '</ul>'; } else { $catlevelup = get_category(get_query_var('cat'),false); $catlevelupid = $catlevelup->category_parent; $categories = get_categories('parent='.$catlevelupid.''); echo '<ul>'; foreach ($categories as $category) { ?> <li<?php if ($category->term_id == $cat) { ?> class="cat_active"<?php } ?>><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li> <?php } echo '</ul>'; } ?>
Если нужно вывести просто подкатегории текущей категории, то код такой
<?php $categories = get_categories('parent='.$cat.''); echo '<ul>'; foreach ($categories as $category) { ?> <li><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li> <?php } echo '</ul>'; ?>
Если нужно вывести подкатегориии с изображениями то код следующий:
<?php $categories = get_categories('parent='.$cat.''); echo "<ul>"; foreach ($categories as $category) { ?> <?php if($imgrubriki=get_field("imgrubriki",$category)){?> <div class="fp_katalog_thumb"><a href="<?php echo get_category_link($cat->term_id);?>"><img src="<?php echo $imgrubriki;?>" /></a></div> <?php }?> <li><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li> <?php } echo "</ul>"; ?>
Для добавления изображений использую плагин Advanced Custom Fields
Если нужно вывести категории списком с вложенными подкатегориями делаем так:
<?php $categories = get_categories('parent='.$cat.''); echo "<ul>"; foreach ($categories as $category) { ?> <?php if($imgrubriki=get_field("imgrubriki",$category)){?> <div class="fp_katalog_thumb"><a href="<?php echo get_category_link($cat->term_id);?>"><img src="<?php echo $imgrubriki;?>" /></a></div> <?php }?> <li><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a> <?php $catsub = $category->term_id; $categories = get_categories('child_of='.$catsub.''); ?> <ul> <?php foreach ($categories as $category) { ?> <li><a href="<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a> <?php } ?> </ul> </li> <?php } echo "</ul>"; ?>
Можно вывести список категорий, разными параметрами: заголовок, стиль итд. При этом автоматом будут присваеваться классы активным рубриками и прочие фишки. Делается это с помощью функции wp_list_categories
<?php echo '<ul class="menu_left">'; wp_list_categories( 'child_of=5&title_li=&style=list&hide_empty=1&hierarchical=true¤t_category=0' ); echo '</ul>'; ?>
Как вывести описание категории
Выводим описание категории на всех страницах
<?php echo category_description(); ?>
Выводим только на титульной странице категории и исключаем страницы пагинации и прочие
<?php if (is_category()) { if (is_paged()) { echo '';} else { echo category_description(); } } ?>