Php Woocommerce-在wordpress主页上展示销售中的产品-wp_查询

Php Woocommerce-在wordpress主页上展示销售中的产品-wp_查询,php,wordpress,woocommerce,hook-woocommerce,Php,Wordpress,Woocommerce,Hook Woocommerce,我做了自定义wp_查询以在woocommerce主页上显示我的销售产品,但我无法在主页上显示正确的销售产品。我只能看到3种产品(其中一种正在销售,另外两种没有)。Shordcode显示了正确的销售产品,但我的查询变得疯狂。我不能使用快捷码,因为我需要创建旋转木马 代码如下: $args = array( 'post_type' => 'product', 'posts_per_page' => -1, 'meta_query' => array( 'relat

我做了自定义wp_查询以在woocommerce主页上显示我的销售产品,但我无法在主页上显示正确的销售产品。我只能看到3种产品(其中一种正在销售,另外两种没有)。Shordcode显示了正确的销售产品,但我的查询变得疯狂。我不能使用快捷码,因为我需要创建旋转木马

代码如下:

$args = array(
'post_type'      => 'product',
'posts_per_page' => -1,
'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'
                        )
                    )
                );

                $saleproducts = new WP_Query( $args );

                if ( $saleproducts->have_posts() ) : 
                while ( $saleproducts->have_posts() ) : $saleproducts->the_post();

                $post_thumbnail_id     = get_post_thumbnail_id();
                $product_thumbnail     = wp_get_attachment_image_src($post_thumbnail_id, $size = 'shop-feature');
                $product_thumbnail_alt = get_post_meta( $post_thumbnail_id, '_wp_attachment_image_alt', true );

----MY HTML CODE HERE----

endwhile; endif; 
wp_reset_query();
wp_reset_postdata();

我已经测试了您的代码,它不适用于变体产品,因为
\u min\u variation\u sale\u price
postETA
表中不存在。因此,我必须更改查询以获得销售产品。详情如下:

$query_args = array(
    'posts_per_page' => -1,
    'no_found_rows' => 1,
    'post_status' => 'publish',
    'post_type' => 'product',
    'meta_query' => WC()->query->get_meta_query(),
    'post__in' => array_merge(array(0), wc_get_product_ids_on_sale())
);
$products = new WP_Query($query_args);

if ($products->have_posts()) :
    while ($products->have_posts()) : $products->the_post();

        $post_thumbnail_id = get_post_thumbnail_id();
        $product_thumbnail = wp_get_attachment_image_src($post_thumbnail_id, $size = 'shop-feature');
        $product_thumbnail_alt = get_post_meta($post_thumbnail_id, '_wp_attachment_image_alt', true);

        echo get_the_title() . ' - ' . get_the_ID() . '<br/>';
//        ----MY HTML CODE HERE----
    endwhile;
endif;
$query\u args=array(
“每页帖子数”=>-1,
“未找到行”=>1,
“发布状态”=>“发布”,
“post_类型”=>“产品”,
'meta\u query'=>WC()->query->get\u meta\u query(),
'post_uuuin'=>array_merge(array(0),wc_get_product_id_on_sale())
);
$products=新的WP\U查询($Query\U参数);
如果($products->have_posts()):
而($products->have_posts()):$products->the_post();
$post_thumbnail_id=get_post_thumbnail_id();
$product_缩略图=wp_get_attachment_image_src($post_thumbnail_id,$size='shop feature');
$product\U缩略图\U alt=get\U post\U meta($post\U缩略图\U id','U wp\U附件\U图像\U alt',true);
echo获取标题()。获取\u ID()
; //----我的HTML代码在这里---- 结束时; endif;
使用此代码,您可以获得所有在售产品。我已经从你的网站上查过了


希望这对您有所帮助。

我已经测试了您的代码,它不适用于变体产品,因为
\u min\u variation\u sale\u price
postETA
表中不存在。因此,我必须更改查询以获得销售产品。详情如下:

$query_args = array(
    'posts_per_page' => -1,
    'no_found_rows' => 1,
    'post_status' => 'publish',
    'post_type' => 'product',
    'meta_query' => WC()->query->get_meta_query(),
    'post__in' => array_merge(array(0), wc_get_product_ids_on_sale())
);
$products = new WP_Query($query_args);

if ($products->have_posts()) :
    while ($products->have_posts()) : $products->the_post();

        $post_thumbnail_id = get_post_thumbnail_id();
        $product_thumbnail = wp_get_attachment_image_src($post_thumbnail_id, $size = 'shop-feature');
        $product_thumbnail_alt = get_post_meta($post_thumbnail_id, '_wp_attachment_image_alt', true);

        echo get_the_title() . ' - ' . get_the_ID() . '<br/>';
//        ----MY HTML CODE HERE----
    endwhile;
endif;
$query\u args=array(
“每页帖子数”=>-1,
“未找到行”=>1,
“发布状态”=>“发布”,
“post_类型”=>“产品”,
'meta\u query'=>WC()->query->get\u meta\u query(),
'post_uuuin'=>array_merge(array(0),wc_get_product_id_on_sale())
);
$products=新的WP\U查询($Query\U参数);
如果($products->have_posts()):
而($products->have_posts()):$products->the_post();
$post_thumbnail_id=get_post_thumbnail_id();
$product_缩略图=wp_get_attachment_image_src($post_thumbnail_id,$size='shop feature');
$product\U缩略图\U alt=get\U post\U meta($post\U缩略图\U id','U wp\U附件\U图像\U alt',true);
echo获取标题()。获取\u ID()
; //----我的HTML代码在这里---- 结束时; endif;
使用此代码,您可以获得所有在售产品。我已经从你的网站上查过了


希望这对您有所帮助。

哇,谢谢!它起作用了。在您回答我的问题之前,我是这样做的:
内容
虽然有效,但您的解决方案更加优雅。我很高兴知道此代码对您有所帮助。哇,谢谢!它起作用了。在您回答我的问题之前,我是这样做的:
内容
虽然有效,但您的解决方案要优雅得多。我很高兴知道此代码对您有所帮助。