Как отобразить товары определенной категории с помощью плагина WooCommerce?

5 окт. 2012 г., 15:23:41
Просмотры: 193K
Голосов: 16

Я использую плагин WooCommerce для создания интернет-магазина.

У меня есть много категорий, например shoes, clothes и так далее. Как я могу отобразить товары определенной категории?

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

1
Комментарии

Не могли бы вы, пожалуйста, подсказать, куда добавить этот код?

Alaa M. Jaddou Alaa M. Jaddou
20 янв. 2017 г. 21:49:56
Все ответы на вопрос 3
8
29

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

<ul class="products">
    <?php
        $args = array( 'post_type' => 'product', 'posts_per_page' => 1, 'product_cat' => 'shoes', 'orderby' => 'rand' );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

            <h2>Обувь</h2>

                <li class="product">    

                    <a href="<?php echo get_permalink( $loop->post->ID ) ?>" title="<?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?>">

                        <?php woocommerce_show_product_sale_flash( $post, $product ); ?>

                        <?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Заглушка" width="300px" height="300px" />'; ?>

                        <h3><?php the_title(); ?></h3>

                        <span class="price"><?php echo $product->get_price_html(); ?></span>                    

                    </a>

                    <?php woocommerce_template_loop_add_to_cart( $loop->post, $product ); ?>

                </li>

    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</ul><!--/.products-->
5 окт. 2012 г. 18:07:02
Комментарии

@VanTong Тогда отметьте этот ответ как правильный: нажмите на галочку слева.

fuxia fuxia
7 окт. 2012 г. 07:37:00

Привет Dwaser, я хочу спросить еще кое-что. Если на странице архива я хочу показывать все новые товары. И когда я выбираю определенную категорию, она должна показывать товары этой категории. Например, у меня есть 2 категории - Категория A и Категория B. Когда я выбираю A, должны показываться товары A, а когда выбираю B - товары B. Пожалуйста, подскажите, как сделать такие циклы. Спасибо.

Van Tong Van Tong
26 окт. 2012 г. 15:22:20

как показать сообщение, если нет товаров?

Muhammad Bilal Muhammad Bilal
6 февр. 2014 г. 01:42:27

@dwaser Привет, принимает ли аргумент product_cat числовой ID категории, например: 40 вместо 'shoes'? Если нет, как сделать так, чтобы он принимал числовой ID категории? Спасибо

Malloc Malloc
6 мая 2014 г. 21:15:51

@dwaser. Похоже, что функция woocommerce_placeholder_img_src() теперь устарела. Будет ли get_image() её эквивалентом? http://docs.woothemes.com/wc-apidocs/source-class-WC_Product.html#1473-1489. Также, почему вы сначала проверяете наличие миниатюры записи?

codecowboy codecowboy
9 июн. 2015 г. 14:34:03

Извините, ребята, но куда добавить этот код? Я новичок в WordPress, но у меня очень сжатые сроки. @VanTong

Alaa M. Jaddou Alaa M. Jaddou
20 янв. 2017 г. 21:21:15

Мне также интересно, в каком контексте используется этот код. Куда его нужно вставить?

c0dehunter c0dehunter
15 февр. 2018 г. 11:02:31

Ответ с опозданием в год, но вам следует поместить это в ваш шаблон. wp-content/вашатема/template-name.php

Bwrites Bwrites
16 окт. 2019 г. 06:47:48
Показать остальные 3 комментариев
1

Попробуйте этот код:

<?php
    echo $product->get_categories(
        ', ',
        '<span class="posted_in">' . _n( 'Категория:', 'Категории:',
        sizeof( get_the_terms( $post->ID, 'product_cat' ) ),
        'woocommerce' ) . ' ',
        '.</span>'
    );
?>
17 сент. 2013 г. 10:41:28
Комментарии

Можете подробнее объяснить, как и почему это решит проблему автора вопроса?

Johannes Pille Johannes Pille
17 сент. 2013 г. 11:38:37
2

Есть еще один способ:

Вы можете назначить страницу "Магазин" в качестве главной страницы по умолчанию. Теперь все товары будут отображаться на главной странице. Я имею в виду index.php.

14 мар. 2014 г. 12:39:55
Комментарии

вопрос был о товарах определенной категории?

Jon Jon
20 окт. 2020 г. 15:44:32

Пожалуйста, удалите этот ответ, так как он не имеет отношения к вопросу.

clayRay clayRay
12 февр. 2021 г. 05:46:46