WooCommerce添加pa_brand属性meta查询后搜索无结果求助
解决WooCommerce搜索特定产品属性无结果的问题
你的问题核心是错误用meta_query处理产品属性——WooCommerce的产品属性(比如pa_brand)属于自定义分类法(Taxonomy),并非存储在_postmeta表的自定义字段,所以用meta_query自然查不到数据。
正确实现代码
改用woocommerce_product_query_tax_query过滤器筛选产品属性,代码如下:
add_filter( 'woocommerce_product_query_tax_query', 'filter_products_by_brand_taxonomy', 10, 2 ); function filter_products_by_brand_taxonomy( $tax_query, $query ) { $tax_query[] = array( 'taxonomy' => 'pa_brand', 'field' => 'term_id', // 若用属性slug筛选,改为'slug' 'terms' => '464', 'operator' => 'IN' ); return $tax_query; }
补充说明
- 若你的
464是品牌属性的术语slug而非ID,只需将field的值改为'slug'。 - 确认
pa_brand是正确的属性分类法名称(WooCommerce产品属性的分类法名默认是pa_+属性slug)。
内容的提问来源于stack exchange,提问作者bh9999
相关产品推荐
相关产品推荐

