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
.