WooCommerce通过属性查询获取产品 [英] WooCommerce get products by attribute query

查看:201
本文介绍了WooCommerce通过属性查询获取产品的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有属性颜色的产品.属性值为红色,蓝色和绿色.我正在尝试创建自定义搜索,但无法获取提取任何产品的查询.

I have a product with attribute colors. Attribute values are red, blue and green. I am trying to create a custom search but I can't get the query to pull any product.

$args =  array(
    'post_type'      => array('product'),
    'post_status'    => 'publish',
    'posts_per_page' => -1,
    'meta_query'     => array( 
        array(
            'key' => '_visibility',
            'value' => array('catalog', 'visible'),
            'compare' => 'IN',  
        ) 
    ),
    'tax_query'      => array( 
        array(
            'taxonomy'        => 'product',
            'field'           => 'slug',
            'terms'           =>  array('blue', 'red', 'green'),
            'operator'        => 'IN',
        ),
    )
);

$products = new WP_Query( $args );

我哪里出错了?

推荐答案

产品属性颜色的正确分类法是 'pa_color' ,因此正确的工作查询是:

The correct taxonomy for the product attribute color is 'pa_color', so the correct working query is:

// The query
$products = new WP_Query( array(
   'post_type'      => array('product'),
   'post_status'    => 'publish',
   'posts_per_page' => -1,
   'meta_query'     => array( array(
        'key' => '_visibility',
        'value' => array('catalog', 'visible'),
        'compare' => 'IN',
    ) ),
   'tax_query'      => array( array(
        'taxonomy'        => 'pa_color',
        'field'           => 'slug',
        'terms'           =>  array('blue', 'red', 'green'),
        'operator'        => 'IN',
    ) )
) );

// The Loop
if ( $products->have_posts() ): while ( $products->have_posts() ):
    $products->the_post();
    $product_ids[] = $products->post->ID;
endwhile;
    wp_reset_postdata();
endif;

// TEST: Output the Products IDs
print_r($product_ids);

此代码已经过测试并且可以正常工作.您将获得所有具有颜色"属性的产品,其值(术语)为蓝色",红色"和绿色"……

This code is tested and works. You will get all products that have Color attribute with the values (terms) 'blue', 'red' and 'green'…

自WooCommerce 3起,产品可见性由自定义分类法product_visibility处理.您可以看到以下相关线程:

Since WooCommerce 3, product visibility is handled by custom taxonomy product_visibility. You can see the following related threads:

  • Database changes for products in woocommerce 3
  • Get products which are visible in catalog in a WP_query on Woocommerce

这篇关于WooCommerce通过属性查询获取产品的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆