Выводим список категорий определенной кастомной таксономии

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.

Полезная инфа:

Оставить комментарий