首页 > 解决方案 > Woocommerce如何展示产品有两个类别,其中一个应该是常见的

问题描述

我正在开发自定义 Woo 商店主题。我想在 front-page.php 中显示 NEW COLLECTION 产品,它应该是一个块,并且在几个较小的块中显示产品和它们的另一个 vcategories,因为它们将有共同的类别 NEW 和另一个类别取决于 BEDROOM/BATHROOM/CLOTHING,现在我已经按一个类别重新显示。

<div class="col-md-12 row">
            <?php  
                $args = array(
                    'post_type'      => 'product',
                    'posts_per_page' => 4,
                    'product_cat'    => 'clothing'
                );
                
                $loop = new WP_Query( $args );

                while ( $loop->have_posts() ) : $loop->the_post();
                    global $product;
                    $colors = explode(',',$product->get_attribute('color'));
                    $price = $product->get_price_html();
                ?>
                <div class="col-md-3 d-flex flex-column">
                    <div class="homepage__single-product">
                        <a href="<?php the_permalink(); ?>">
                            <img src="<?php echo the_post_thumbnail_url(); ?>">
                            <p class="homapage__single-product-title"><?php the_title(); ?></p>
                            <p class="homapage__single-product-price"><?php echo $price ?></p>
                            <p class="homepage__single-product-color">
                                <?php foreach ($colors as $color) {
                                        echo '<span class="attribute-color '. strtolower(trim($color)) .'"></span>';
                                    }    
                                ?>
                            </p>
                        </a>
                    </div> 
                </div>

                <?php

                endwhile;

                wp_reset_query();
            ?>
        </div>

我希望我的问题很清楚,我正在添加带有设计的图像以便更好地理解。我认为它应该像这段代码一样,但是这段代码应该在 $args 中有 NEW 作为 product_cat,然后在循环内部以某种方式执行相同的块,但使用其他类别。

设计展示了它应该如何

标签: phphtmlcsswordpresswoocommerce

解决方案


您可以使用tax_query从多个类别中获取产品。检查下面的代码。

<div class="col-md-12 row">
    <?php  
        
        $prod_categories = array( 'bedroom', 'bathrooms', 'clothing'); //category slugs
        
        $args = array(
            'post_type'      => 'product',
            'posts_per_page' => 4,
        );
        
        if (!empty($prod_categories)) {
            $args['tax_query'] = array(
                array(
                    'taxonomy' => 'product_cat',
                    'field'    => 'slug',
                    'terms'    => $prod_categories,
                    'operator' => 'IN',
            ));
        }

        $loop = new WP_Query( $args );

        while ( $loop->have_posts() ) : $loop->the_post();
            global $product;
            $colors = explode(',',$product->get_attribute('color'));
            $price = $product->get_price_html();
        ?>
        <div class="col-md-3 d-flex flex-column">
            <div class="homepage__single-product">
                <a href="<?php the_permalink(); ?>">
                    <img src="<?php echo the_post_thumbnail_url(); ?>">
                    <p class="homapage__single-product-title"><?php the_title(); ?></p>
                    <p class="homapage__single-product-price"><?php echo $price ?></p>
                    <p class="homepage__single-product-color">
                        <?php foreach ($colors as $color) {
                                echo '<span class="attribute-color '. strtolower(trim($color)) .'"></span>';
                            }    
                        ?>
                    </p>
                </a>
            </div> 
        </div>

        <?php

        endwhile;

        wp_reset_query();
    ?>
</div>

推荐阅读