31.10.2019
Суть задачи – вывести в сайдбаре список категорий из заданной кастомной таксономии. Если для вывода обычных категорий есть виджет, то для кастомных категорий виджета нету, поэтому выведем список данных категорий из кастомной таксономии с помощью кода.
Исходные данные:'taxonomy'
– заданная таксономия, из которой будем выводить все категории;'hide_empty'
– скрыть пустые категории;'pad_counts'
– в родительской категории выводим сумму записей дочерних категорий.
Код вывода списка категорий из кастомной таксономии:
<?php $terms = get_terms( array( 'taxonomy' => 'my_taxonomy', 'hide_empty' => true, 'pad_counts' => true, 'orderby' => 'count', 'order' => 'DESC', ) ); if ( ! empty( $terms ) && is_array( $terms ) ) { echo '<ul class="list-my_taxonomy">'; foreach ( $terms as $term ) { ?> <li> <a href="<?php echo esc_url( get_term_link( $term ) ) ?>"> <?php echo $term->name; ?> (<?php echo $term->count; ?>) </a> </li> <?php } echo '</ul>'; } ?>
Пример, как вывести список категорий из кастомной таксономии с выделением активной категории:
<?php $terms = get_terms( array( 'taxonomy' => 'my_taxonomy', 'hide_empty' => true, 'pad_counts' => true, 'orderby' => 'count', 'order' => 'DESC', ) ); if ( ! empty( $terms ) && is_array( $terms ) ) { echo '<ul class="sidebar-offer_cat">'; foreach ( $terms as $term ) { $curTerm = $wp_query->queried_object; $class = ( $term->name == $curTerm->name ) ? 'active' : ''; ?> <li class="<?php echo $class; ?>"> <a href="<?php echo esc_url( get_term_link( $term ) ) ?>"> <?php echo $term->name; ?> </a> </li> <?php } echo '</ul>'; } ?>
К активной категории, то есть категории на которой сейчас находится пользователь добавляется класс active
.