WooFrance Dépannage et support WordPress WooCommerce Forums Forum de Support WooCommerce Comment n'afficher que des produits d'une catégorie dans mon product-archive.php

Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #151976
    Maxim Hohengarten
    Participant
    Points: 14 pts

    Salut les codeurs! Je me suis inscrit ici pour poster ça, car là ça fait quelques temps que je bloque. En gros, j’aimerai faire un affichage personnalisé de la page boutique, donc j’ai mon product-archive.php dans mon thème enfant (le thème parent c’est Storefront pour info), et je n’ai édité que la partie « woocommerce_product_loop » de cette manière :

    
        woocommerce_product_loop_start();
        if ( wc_get_loop_prop( 'total' ) ) {
    
            $categories = get_terms( ['taxonomy' => 'product_cat', 'hide_empty' => false] );
            foreach ( $categories as $category ) {
    
                $title_value = (mb_strlen($category->parent) + 1);
    
                print_r("<h$title_value>$category->name</h$title_value>");
    
                while ( have_posts() ) {
                    the_post();
    
                    /**
                     * Hook: woocommerce_shop_loop.
                     */
                    do_action( 'woocommerce_shop_loop' );
    
                    wc_get_template_part( 'content', 'product' );
                }
            }
        }
        woocommerce_product_loop_end();
    

    Mon objectif est d’afficher chaque nom de catégorie en « titre » (le foreach) suivi des produits correspondants à la catégorie précédemment définie, hors, là, ça m’affiche tous les produits en dessous de chaque titre de catégorie.

    Mon problème c’est que je ne sais pas comment filtrer les produits. Je suppose qu’il faut éditer la WP_query, mais je ne sais pas comment l’altérer tout en gardant ma shop_loop quasi-« vanilla » (pour rester le plus compatible possible).

    J’ai aussi posté mon problème sur stack overflow.

    depanagewp
Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.