如何通过WooCommerce API依据商品属性搜索产品?
如何通过WooCommerce API依据商品属性搜索产品?
嘿,我看了你用WooCommerce v1 API尝试按属性搜产品的代码,问题出在参数格式上——v1 API并不支持你写的那种嵌套attribute数组的写法,得用特定的筛选参数格式才行。
先给你修正后的v1 API代码:
$args = array( "page" => "1", "status" => "publish", // 格式是 filter[attribute_属性slug] = 属性值 "filter[attribute_color]" => "Loft Gray" ); $getProducts = $woocommerce->get('products', $args);
这里要注意几个关键点:
attribute_color里的color是你属性的slug(不是后台显示的“Color”名称),你可以在WooCommerce后台的「产品 > 属性」页面找到对应属性的slug,比如如果属性slug是product-color,那就要写成filter[attribute_product-color]- 如果要筛选多个属性值,直接用逗号分隔就行,比如
"filter[attribute_color]" => "Loft Gray,Black"
另外,如果你能升级到WooCommerce REST API v3的话,参数逻辑会更清晰,而且v1已经被官方弃用了,推荐优先用v3:
$args = array( "page" => 1, "status" => "publish", "attribute" => "color", // 属性的slug "attribute_term" => "loft-gray" // 属性值的slug,不是显示名称! ); $getProducts = $woocommerce->get('products', $args);
v3里需要注意,attribute_term传的是属性值的slug,不是显示的“Loft Gray”,这点很容易踩坑,你可以在属性的“术语”列表里找到对应值的slug。
最后再补两个重要提醒:
- 只有全局属性(不是单个产品自定义的属性)才能通过API筛选,自定义属性是搜不到的
- 一定要确认属性和属性值的slug完全正确,大小写、连字符这些都不能错,否则会返回空结果
内容的提问来源于stack exchange,提问作者Pranav Patel
相关产品推荐
相关产品推荐

