首页 文章

按自定义属性对象过滤WooCommerce产品

提问于
浏览
1

我刚刚继承了一个woocommerce项目,我需要将主页更改为仅显示特定品牌 . 他们设置了Product-Data => Attribute => 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来使用其中一个键值对来过滤查询,最好是slug,但我不确定如何做到这一点 . 我发现的所有示例都没有对象,只是字符串结果:

$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' => '='
    )
)

);

我已经尝试了很多变化,但没有一个有效 . 有什么建议?

1 回答

  • 3

    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 分类标签下的标签,标签ID为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
    );
    

    如果您参考文档,上面的参数与this相同

    $args = array(
        'post_type' => 'product',
        'tax_query' => array(
            array(
                'taxonomy' => 'pa_brand',
                'field'    => 'slug',
                'terms'    => 'honda',
            ),
        ),
    );
    

    编辑:Woocommerce属性是分类而不是自定义Feilds,

    您需要使用 tax_query 而不是 meta_query ,分类法保存在 wp_term_taxonomywp_terms 数据库表中,而 meta_query 用于基于元字段/自定义字段值的对象查询,保存在 wp_postmeta 数据库表下,

    https://codex.wordpress.org/Class_Reference/WP_Query

相关问题