Wordpress / WooCommerce - фильтры категорий товаров и дочерние фильтры для архива-продукта. php - PullRequest
0 голосов
/ 09 июля 2020

Я создаю собственную тему для 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 } 
}
?>

Что дает желаемый эффект на главной странице магазина, а также на странице уровня категории, но когда мы попадаем в подкатегорию, ничего не появляется, может ли кто-нибудь указать мне в правильном направлении на это?

Спасибо, ребята!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...