php - WooCommerce 通过属性查询获取产品

标签 php wordpress woocommerce attributes 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 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);

此代码已经过测试并且可以工作。您将获得具有值(术语)“蓝色”、“红色”和“绿色”的 Color 属性的所有产品......

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

关于php - WooCommerce 通过属性查询获取产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51909600/

相关文章:

javascript - 使用 jQuery 在 PHP 中获取 JSON 响应

php - 通过缓存的 Facebook 小部件成为 Facebook 粉丝

php - 店面产品页面获取产品摘要并向右浮动以匹配图像对齐

php - 在 Wordpress 中编辑现有的 WooCommerce 元框

woocommerce - 如何从 woocommerce 中的变体 ID 检索变体名称?

php - 通过 PHP 在电子邮件中发送 HTML 页面

php - 重定向后丢失 session 变量

php - Woocommerce,删除产品页面上的价格

php - WordPress 无法存储非英文字符

php - 从 WP_Query 中的当前产品类别术语 ID 获取所有 Woocommerce 产品