Boucle personnalisée Woocommerce pour afficher tous les produits
-
-
Hé,as-tu déjàtrouvé une réponse à ça?Si oui,veuillezpartager.Cela seratrès apprécié.Merci.Hey, did you ever find an answer for this? If yes, please share. That will be highly appreciated. Thanks.
- 0
- 2013-06-14
- Devner
-
Voici unmeilleur article à copier àpartir de :) https://cfxdesign.com/create-a-custom-woocommerce-product-loop-the-right-way/Here's a better post to copy from :) https://cfxdesign.com/create-a-custom-woocommerce-product-loop-the-right-way/
- 0
- 2018-05-24
- cfx
-
2 réponses
- votes
-
- 2013-06-14
Jen'aipasentièrement résolumonproblème. Mon client a changé d'aviset ne voulaitplus dutri.
Mais concernant lapagination,j'ai réussi à lefairefonctionneren ajoutant unnouvel argument dansma requête,voici le code qui l'afaitfonctionnerpourmoi:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'product', 'paged' => $paged, ); $wp_query = new WP_Query($args); if (isset($_GET['all'])) { ?> <?php do_action('woocommerce_archive_description'); ?> <?php if (have_posts()) : ?> <?php // I don't want the sorting anymore //do_action('woocommerce_before_shop_loop'); ?> <ul class = "products-list"> <?php while (have_posts()) : the_post(); ?> <?php woocommerce_get_template_part('content', 'product'); ?> <?php endwhile; // end of the loop. ?> </ul> <?php /* woocommerce pagination */ do_action('woocommerce_after_shop_loop'); ?> <?php elseif (!woocommerce_product_subcategories(array('before' => woocommerce_product_loop_start(false), 'after' => woocommerce_product_loop_end(false)))) : ?> <?php woocommerce_get_template('loop/no-products-found.php'); ?> <?php endif; ?> <?php } else { // Code to display the product categories with thumbnails. } ?>
La variable
$paged
m'aide àfairepasser lapage actuelle dans l'URL via GET.Encore unefois,je ne saispas si c'est lameilleurefaçon de lefaire. Mais cela afait letravailpourmoi.
J'espère que celapourra aider quelqu'un.
I didn't entirely resolved my problem. My client changed his mind and didn't want the sorting anymore.
But concerning the paging, I managed to have it working by adding a new arg in my query, here is the code that made it worked for me :
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'product', 'paged' => $paged, ); $wp_query = new WP_Query($args); if (isset($_GET['all'])) { ?> <?php do_action('woocommerce_archive_description'); ?> <?php if (have_posts()) : ?> <?php // I don't want the sorting anymore //do_action('woocommerce_before_shop_loop'); ?> <ul class = "products-list"> <?php while (have_posts()) : the_post(); ?> <?php woocommerce_get_template_part('content', 'product'); ?> <?php endwhile; // end of the loop. ?> </ul> <?php /* woocommerce pagination */ do_action('woocommerce_after_shop_loop'); ?> <?php elseif (!woocommerce_product_subcategories(array('before' => woocommerce_product_loop_start(false), 'after' => woocommerce_product_loop_end(false)))) : ?> <?php woocommerce_get_template('loop/no-products-found.php'); ?> <?php endif; ?> <?php } else { // Code to display the product categories with thumbnails. } ?>
The
$paged
variable helps me to get the current page passed in the URL via GET.Once again, I dunno if it is the best way to do it. But it did the job for me.
I hope it can help someone.
-
`woocommerce_get_template_part`est obsolète depuis la version 3.0 ... utilisez` wc_get_template_part` à laplace ... Vouspouvez également utiliser uneinstructionif pour que votre codeprenneen charge les versionsplus ancienneset plus récentes de woocommerce`woocommerce_get_template_part` is deprecated since version 3.0 ... use `wc_get_template_part` instead ... You can as well use a if statement to make your code support both older and newer version of woocommerce
- 0
- 2019-12-10
- Kolawole Emmanuel Izzy
-
- 2014-09-16
Dans votretableau $ args,vous devriezpouvoir ajouter
'posts_per_page' => -1
pour affichertous lesproduits.Le résultat ressemblerait à ceci:$args = array( 'post_type' => 'product', 'paged' => $paged, 'posts_per_page' => -1 );
In your $args array, you should be able to add
'posts_per_page' => -1
to show all products. The result would look like this:$args = array( 'post_type' => 'product', 'paged' => $paged, 'posts_per_page' => -1 );
Jetravaille actuellement sur un site de commerce électroniqueet j'ai rencontré unproblème. Mon client souhaite unepagee-boutique avectoutes les catégories deproduits affichées,suivi detroisproduitspromuset d'unbouton "tout afficher".
Cebouton "Affichertout"est censé affichertous lesproduits contenus dans laboutique avec letriet lapaginationpar défaut de woocommerce.
Tout d'abord,je ne saispas sije fais les choses correctement. Ce quej'aijusqu'àprésent,c'est lapage affichant les catégories deproduitset lorsque sur cettepageje clique sur lebouton "affichertout",je recharge lapage avec un argument
GET
/?all=1
et afficher leproduit.J'ai copié l'idée de cemessage ,et voicimon code:
Lesproduits sontbien affichéset la sélectionpour letriest visible. Lorsqueje souhaitemodifier letri,lapageest rechargéemais l'ordren'estpasmodifiéet lapaginationestfixée à 3produitsparpagemaisellen'estpas respectée. (lesboutons depaginationne sontpas affichés).
Je voudrais ajouter que c'estmonpremier site Web utilisant WordPresset WooCommerce.