web-dev-qa-db-fra.com

Comment afficher des produits spécifiques à une catégorie avec le plugin WooCommerce?

J'utilise le plugin Woocommerce pour faire des achats en ligne.

J'ai plusieurs catégories, par exemple shoes, clothes et ainsi de suite. Comment puis-je afficher les produits d'une catégorie spécifique?

Je vois de telles boucles de produits sur la page d’exemple , mais je souhaite uniquement afficher les produits d’une catégorie spécifique dans mon index.php.

13
Van Tong

Vous devez créer une nouvelle boucle pour cela. Voici le code que j'utilise pour afficher les produits d'une catégorie spécifique sur la page d'accueil:

<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>Shoes</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="Placeholder" 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-->
26
dwaser

Il y a un autre moyen:

Vous pouvez attribuer la page "Boutique" comme page d'accueil par défaut. Maintenant, tous les produits seront affichés sur la page d'accueil. Je veux dire index.php.

1
sandeep josan