HelenStar
@HelenStar
Начинающий frontend

Как сделать переключение между категориями при выводе товаров по типу табов без использования сторонних плагинов?

Речь идет о подобном решении с категориями:

n2YbjvptbkMWvA.jpg

В WC есть виджет для вывода категорий, но при открытии категории он перекидывает на страницу категории, а мне нужно, чтобы это работало как обычный фильтр по категориям, а не ссылки на страницу. Я могла бы сделать это табами с аякс подгрузкой, для каждого таба сделать вывод товаров из нужной категории, но прикол в том, что категории могут меняться и добавляться новые, а значит, нужно, чтобы их создавал автоматом и выводил сам wp.

Все перелопатила в сети, не могу никак найти нормальной информации по кастомизации вывода категорий. С кастомизацией вывода товаров понятно - это за пару минут сделала, а вот как реализовать такой фильтр - хз. Везде только одни плагины советуют, вид вывода которых еще тоже надо разбираться можно ли вообще кастомизировать под табы.

P.S. С WC еще толком не работала, поэтому и не знаю.
  • Вопрос задан
  • 224 просмотра
Решения вопроса 1
HelenStar
@HelenStar Автор вопроса
Начинающий frontend
Решила вопрос с помощью доп поля ACF с типом "таксономия". Надо было сразу с него начинать)

<?php $cats = get_terms(
                    array(
                        'taxonomy' => 'product_cat',
                        'hide_empty' => false,
                    )
                );

                global $post;
                $term_slug=$post->post_name;

                $i=0;
                foreach($cats as $item){ $i++;
                    if($i ==1){
                        $current_cat = $item->slug;
                        if(isset($_GET['cat'])) {
                            $current_cat = $_GET['cat'];
                        }
                    }
                }

                $terms = get_field('cats');

                if( $terms ): ?>
                        <?php foreach( $terms as $term ): ?>
                            <a href="/<?php print "$term_slug"; ?>/?cat=<?php echo $term->slug; ?>" class="nav_category_catalog w-inline-block">
                                <div><?php echo $term->name; ?></div>
                            </a>
                        <?php endforeach; ?>

                <?php endif; ?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
а мне нужно, чтобы это работало как обычный фильтр по категориям

Фильтр предполагает включение двух и более категорий одновременно. Вы действительно этого хотите? Если да, то вам наверное нужен плагин фильтра и фильтровать по таксономии "product_cat"

Виджет не позволит Вам включить две и более категории одновременно, или надо писать свой виджет с фильтром.

Если же Вы хотите просто ajax обновление странички с подгрузкой нужной категории, то Вам может помочь это видео ( там общий алгоритм )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы