Afficher tous les produits par catégorie avec WooCommerce
-
-
Vous avez simplementbesoin d'uneboucle deboucles.Dans votre `foreach ()`,lancez unnouveau `WP_Query ()`pour récupérertous lesproduits de ceterme ..puisparcourez ceux-ci.You simply need a loop of loops. Inside your `foreach()`, run a new `WP_Query()` to grab all the products in that term.. and then loop through those.
- 0
- 2014-03-25
- helgatheviking
-
Jepense queje comprends commentfaire cela,maisje netrouve rien sur la liste desproduitspar catégorie avec PHP (tout ce queje peuxtrouverest unnon-sens de shortcode).Si vouspouvezme montrer à quoi ressemble ce code,je devraispouvoir comprendre le reste.I think I understand how to do this, but I can't find anything about listing products by category with PHP (all I can find is shortcode nonsense). If you can show me what that code looks like, I should be able to figure out the rest.
- 0
- 2014-03-25
- JacobTheDev
-
Vousn'avezpasbesoin d'un shortcode,lister lesproduitspar catégorieestjuste une [Requêtefiscale] (http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters).You don't need a shortcode, listing products by category is just a [Tax Query](http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters).
- 2
- 2014-03-25
- helgatheviking
-
Je savais queje n'avaispasbesoin d'un shortcode,je disais que c'étaittout ce queje pouvaistrouver,ce quin'étaitpas utile.Ce lien que vous avezfourni sembleprometteur,je vaisessayer demainet faire un rapport,merci.I knew I didn't need a shortcode, I was saying that's all I could find, which was unhelpful. That link you provided looks promising, I'll give it a shot tomorrow and report back, thanks.
- 0
- 2014-03-25
- JacobTheDev
-
D'accord.Si vous êtestoujoursbloqué,modifiez votre question avec votrenouvelletentative de codageet je vais yjeter un œil.Ok. If you are still stuck, edit your question with your new coding attempt and I'll take a look.
- 1
- 2014-03-25
- helgatheviking
-
1 réponses
- votes
-
- 2014-03-26
Je l'ai compris! Le code ci-dessous répertorie automatiquementtoutes les catégorieset les articles de chaque catégorie!
$args = array( 'number' => $number, 'orderby' => 'title', 'order' => 'ASC', 'hide_empty' => $hide_empty, 'include' => $ids ); $product_categories = get_terms( 'product_cat', $args ); $count = count($product_categories); if ( $count > 0 ){ foreach ( $product_categories as $product_category ) { echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>'; $args = array( 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'product_cat', 'field' => 'slug', // 'terms' => 'white-wines' 'terms' => $product_category->slug ) ), 'post_type' => 'product', 'orderby' => 'title,' ); $products = new WP_Query( $args ); echo "<ul>"; while ( $products->have_posts() ) { $products->the_post(); ?> <li> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> </li> <?php } echo "</ul>"; } }
Figured it out! The code below automatically lists all categories and each categories posts!
$args = array( 'number' => $number, 'orderby' => 'title', 'order' => 'ASC', 'hide_empty' => $hide_empty, 'include' => $ids ); $product_categories = get_terms( 'product_cat', $args ); $count = count($product_categories); if ( $count > 0 ){ foreach ( $product_categories as $product_category ) { echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>'; $args = array( 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'product_cat', 'field' => 'slug', // 'terms' => 'white-wines' 'terms' => $product_category->slug ) ), 'post_type' => 'product', 'orderby' => 'title,' ); $products = new WP_Query( $args ); echo "<ul>"; while ( $products->have_posts() ) { $products->the_post(); ?> <li> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> </li> <?php } echo "</ul>"; } }
-
Agréable.Si vous voulez devenir vraimentfou,vous voudrezpeut-être vouspencher sur l '[API Transients] (https://codex.wordpress.org/Transients_API) ... cela vousempêcherait d'exécuter autant de requêtes à chaque chargement depage.Nice. If you want to get really crazy you might want to look into the [Transients API](https://codex.wordpress.org/Transients_API)... that would help keep you from running so many queries on every page load.
- 0
- 2014-03-26
- helgatheviking
-
Commentpuis-je obtenir les vignettes d'imagespour chaque catégorie?How can I get the image thumbnails for each category?
- 0
- 2016-03-06
- Alyssa Reyes
-
Les catégories @AlyssaReyesn'ontpasintrinsèquement de vignettes;avez-vous configuré un champpersonnalisépour vos catégories à ceteffet?Pourriez-vousposter ceci dans unenouvelle question avecplus de détailset m'envoyer le lien afin queje puissemieux comprendre?@AlyssaReyes categories don't inherently have thumbnails; did you set up a custom field for your categories for this? Could you post this in a new question with more detail and send me the link so I can better understand?
- 0
- 2016-03-07
- JacobTheDev
-
Mercimec,tum'asfaitgagner dutempset m'asmis dans labonne direction.La seulefaçon d'améliorer cette réponseest d'utiliser la classe de requêteintégrée de WooCommerce: `WC_Product_Query`,au lieu de` WP_Query`,puis d'utiliser uneboucle `foreach` au lieu d'uneboucle` while`.Pouren savoirplus,consultez la documentation Githubpour la requête: https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query#description,mais l'essentielest:> "Les requêtes WP_Queriespersonnalisées sont susceptibles decasser votre code dans lesfutures versions de WooCommerce àmesure que les données se déplacent vers destablespersonnaliséespour demeilleuresperformances. "Thanks man, you saved me some time and set me in the right direction. The only way I could improve this answer is to use WooCommerce's built-in query class: `WC_Product_Query`, instead of `WP_Query`, then use a `foreach` loop instead of a `while` loop. For reasons why, take a look at the Github documentation for the query: https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query#description, but the gist is: > "custom WP_Queries queries is likely to break your code in future versions of WooCommerce as data moves towards custom tables for better performance."
- 1
- 2019-07-05
- UncaughtTypeError
Avec WooCommerce,je souhaite affichertoutes les catégories d'unmagasin sousforme detitres,avectous leursproduits répertoriés ci-dessous dans une listenon ordonnée. Est-cepossible? J'ai vu quelques éléments quime permettront d'afficher une liste de catégories ou une liste deproduitspour une catégorie spécifique,mais rien quine parcourratout commeje l'ai décrit.
Voici ce quej'utilise actuellementpour listertoutes les catégories: