不含促销的Loop产品仅显示4件

时间:2019-08-28 00:49:31

标签: wordpress woocommerce

我正在根据我发现的代码示例(仅是原始的销售产品)检索最新产品销售产品。这就是我所做的:

          <?php
            $args = array(
                'post_type' => 'product',
                'posts_per_page' => 8,
                'orderby' =>'id',
                'order' => 'DESC',
                'meta_query'     => array(
                    'relation' => 'OR',
                    array( // Simple products type
                        'key'           => '_sale_price',
                        'value'         => 0,
                        'compare'       => '=',
                        'type'          => 'numeric'
                    ),
                    array( // Variable products type
                        'key'           => '_min_variation_sale_price',
                        'value'         => 0,
                        'compare'       => '=',
                        'type'          => 'numeric'
                    )
                )
            );
            $loop = new WP_Query( $args );
            while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
              <?php wc_get_template_part( 'content', 'product' ); ?>
        <?php endwhile; ?>
        <?php wp_reset_query(); ?>

实际上,它只检索4种产品(我需要8种),这些不是最新的,但正确排除了正在销售的产品。

有什么主意吗?谢谢。

1 个答案:

答案 0 :(得分:0)

(已编辑)这将处理简单的产品。我试图找到如何处理变体,但是找不到创建销售价格时设置的任何元键。无论如何,“比较”不应为“或”,而应为“与”,因为您希望找到不具有任何这些元值的产品。

$args = array(
                'post_type' => 'product',
                'posts_per_page' => 8,
                'orderby' =>'id',
                'order' => 'DESC',
                'meta_query'     => array(
                    array( 
                        'key'           => '_sale_price',
                        'compare'       => 'NOT EXISTS',

                    ),
                )
            );