Я создаю собственную тему для WP / WooCommerce и хотел бы вывести, например, некоторые фильтры категорий на страницах архива.
На странице магазина я бы хотел отобразить все наши фильтры верхнего уровня (например, для дома и сада, для улицы, для путешествий). При нажатии на фильтр, например, «Дом и сад», я бы хотел, чтобы каждая дочерняя категория дома и сада отображалась вместе с заголовком / ссылкой родительской категории рядом с ним, например «Дом и сад: Дочерний». Категория 1, дочерняя категория 2 'et c.
Если мы затем щелкнем по дочерней категории, я все равно хотел бы просто отобразить родительскую категорию и активную подкатегорию вместе с другими параметры подкатегории (Дом и сад: Подкатегория 1, Подкатегория 2, Подкатегория и т. д. c)
На данный момент я выводю в архив-продукт следующее: php:
<?php
$taxonomy = 'product_cat';
if (!is_product_category()) {
// Get all CPT categories and loop through them.
$args = array(
'taxonomy' => $taxonomy,
'orderby' => 'name',
'order' => 'ASC',
'post_type' => 'product',
'parent' => 0
);
$cats = get_categories($args);
// If categories exist - output UL.
if ($cats) { ?>
<ul class="category-ul">
<?php
// Loop categories and output link/name.
foreach($cats as $cat) { ?>
<li>
<a href="<?php echo get_category_link( $cat->term_id ) ?>">
<?php echo $cat->name; ?>
</a>
</li>
<?php } ?>
</ul>
<?php
}
} else {
$term_id = get_queried_object_id();
// Get subcategories of the current category
$terms = get_terms([
'taxonomy' => $taxonomy,
'hide_empty' => true,
'parent' => get_queried_object_id()
]);
$parent_category = get_the_category_by_ID(get_queried_object_id());
$parent_link = get_category_link(get_queried_object_id());
if ($terms) {
?>
<ul class="category-ul">
<li>
<a href="<?php echo $parent_link; ?>">
<?php echo $parent_category; ?>
</a>
</li>
<?php
foreach ( $terms as $term ) {
$term_link = get_term_link( $term, $taxonomy );
?>
<li>
<a href="<?php echo $term_link; ?>">
<?php echo $term->name; ?>
</a>
</li>
<?php } ?>
</ul>
<?php } else { ?>
<ul class="category-ul">
<li>
<a href="<?php echo $parent_link; ?>">
<?php echo $parent_category; ?>
</a>
</li>
</ul>
<?php }
}
?>
Что дает желаемый эффект на главной странице магазина, а также на странице уровня категории, но когда мы попадаем в подкатегорию, ничего не появляется, может ли кто-нибудь указать мне в правильном направлении на это?
Спасибо, ребята!