来自类别循环的Woocommerce产品

时间:2018-03-28 09:32:44

标签: php html wordpress woocommerce custom-taxonomy

在Woocommerce中,我需要一些关于此自定义产品循环的帮助,在我的代码中我的结果是:how it looks like

循环没有停止,它循环相同的产品三到四次。

我正在使用的代码在这里:

<div class="container">
    <div id="default_products_page_container" class="wrap wpsc_container">
        <?php
            remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
            remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
            $cat = get_query_var( 'product_cat' );
            $args = array( 'post_type' => 'product', 'posts_per_page' => 5, 'product_cat' => $cat, 'orderby' => 'rand' );
            $loop = new WP_Query( $args );
        ?>
        <div class="wpsc_default_product_list">
            <?php
            while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
            <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12">
                <div class="default_product_display product_view_<?php echo get_permalink( $loop->post->ID ); ?>group">
                    <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 if (has_post_thumbnail( $loop->post->ID ))
                    {            
                    ?>         
                    <div class="product-image-thumb"> 
                        <img src="<?php echo the_post_thumbnail_url( $loop->post->ID );?>"/>
                    </div>
                    <?php
                    } else 
                    {?>
                    <div class="product-image-thumb">
                        <a>
                            <img src="<?php echo woocommerce_placeholder_img_src();?>"/>
                        </a>
                    </div>
                    <?php } ?>
                </div>
            </div>
            <?php endwhile; ?>
        </div>
        <?php wp_reset_query(); ?>
    </div>
</div>

3 个答案:

答案 0 :(得分:1)

你需要这样做tax query

$loop = new WP_Query( array(
    'post_type' => 'product',
    'post_status' => 'publish',
    'posts_per_page' => 5,
    'tax_query' => array( array(
        'taxonomy'         => 'product_cat',
        'field'            => 'slug', // Or 'term_id' or 'name'
        'terms'            => get_query_var( 'product_cat' ), // A slug term
        // 'include_children' => false // or true (optional)
    )),
    'orderby' => 'rand'
) );

经过测试并使用Woocommerce产品类别存档页面...

答案 1 :(得分:0)

您的代码应该可以使用,但它会占用循环中的所有产品(包括那些标记为&#34; draft&#34;当您登录时)。您只能通过将'post_status' => 'publish'添加到参数变量来定义发布。

你应该看看那些锚标签(特别是关闭部分)

答案 2 :(得分:0)

我希望这段代码能对您有所帮助:)

sudo supervisorctl reread