我正在根据我发现的代码示例(仅是原始的销售产品)检索最新产品销售产品。这就是我所做的:
<?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种),这些不是最新的,但正确排除了正在销售的产品。
有什么主意吗?谢谢。
答案 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',
),
)
);