我刚刚继承了woocommerce项目,我需要更改主页以仅显示特定品牌。他们建立了一个产品数据=>属性=> pa_brand。
如果我打印pa_brand数组,它将显示以下内容:
Array
(
[0] => stdClass Object
(
[term_id] => 1134
[name] => Name Brand
[slug] => name-brand
[term_group] => 0
[term_taxonomy_id] => 1134
[taxonomy] => pa_brand
[description] =>
[parent] => 0
[count] => 68
[object_id] => 3385
[filter] => raw
)
)
我的印象是,我可以使用pa_brand来使用键值对之一(最好是子弹)过滤查询,但是我不确定如何执行此操作。我发现的所有示例都没有对象,只有字符串结果:
$args = array(
'post_type' => array('product', 'product_variation'),
'posts_per_page' => 3,
'orderby' => 'rand',
'meta_query' => array(
array(
'key' => 'pa_brand',
'value' => array('slug' => 'brand-name'),
'compare' => '=',
),
array(
'key' => '_stock_status',
'value' => 'instock',
'compare' => '='
)
)
);
我对此进行了很多尝试,但都没有效果。有什么建议?
Woocommerce属性是分类法,
假设您将创建Brand属性,则url结构如下所示,
yoursite.com/wp-admin/edit-tags.php?taxonomy=pa_brand&post_type=product
您看到分类法名称是 pa_brand
现在,如果您在该分类法下创建了一个像本田这样的品牌,那么网址就是这样,
yoursite.com/wp-admin/edit-tags.php?action=edit&taxonomy=pa_brand&tag_ID=6&post_type=product
本田是pa_brand
分类法下标签为6的标签
现在要在特定分类法下进行woocommerce查询,
我们可以使用WP_query
我们可以使用这样的参数,
$args = array(
'post_type' => 'product',
'taxonomy' => 'pa_brand', // This is the taxonomy slug for brand taxonomy
'term' => 'honda' // This is terms slug of the Honda Brand
);
如果你是指在文档,上面的说法是这同本
$args = array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'pa_brand',
'field' => 'slug',
'terms' => 'honda',
),
),
);
编辑:Woocommerce属性是分类法,而不是自定义字段,
您需要使用tax_query
,而不是meta_query
,分类法下保存wp_term_taxonomy
和wp_terms
数据库表,虽然meta_query
是对象查询基于元场/自定义字段值都保存在wp_postmeta
数据库中的表,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句