【问题标题】:Orderby price issue in a WP_Query for Woocommerce productsWoocommerce 产品的 WP_Query 中的 Orderby 价格问题
【发布时间】:2018-08-30 09:17:01
【问题描述】:

我正在尝试按价格对我的产品进行分类,但它不能正常工作,它只返回了我 56 种产品中的 9 种。我所有的产品都是相似的,都是有变化和属性的产品,所以我不知道为什么会这样。

这是我获取产品的代码,如果我不使用“orderby”,它可以正常工作。

$args = [
"posts_per_page" => 20,
"paged"=> "1",
"tax_query" => [
    [
        "taxonomy" => "product_cat",
        "field" => "term_id",
        "terms" => "213",
        "operator" => "IN",
        "include_children" => false
    ],
    [
        "taxonomy" => "pa_color",
        "field" => "term_id",
        "terms" => [
            "red"
        ],
        "operator" => "IN"
    ],
    "relation" => "AND"
],
"post_type" => [
    "product",
    "product_variation"
],
"meta_query" => [
    [
        "key" => "_price",
        "value" => [
            "20",
            "30"
        ],
        "compare" => "BETWEEN",
        "type" => "NUMERIC"
    ],
    "relation" => "AND"
],
"orderby" => "meta_value_num",
"meta_key" => "_price",
"order" => "ASC"
]

$loop = new WP_Query( $args );

【问题讨论】:

    标签: php wordpress product price variations


    【解决方案1】:

    1) 关于产品变化:

    • 产品类别产品标签的Woocommerce自定义分类未在产品变体中启用,但在其父级中启用可变产品

    • 产品属性 (对于变体)无法通过税务查询获得。对于产品变体,它们设置为元数据,例如attribute_pa_color (所有以 attribute_ 开头的键) 并且值是每个键的术语 slug

    因此,您不能让您的查询同时适用于 productproduct_variation 两种帖子类型。

    注意:产品变体默认情况下不显示在产品循环中。它们仅显示在购物车项目和订单项目中

    2) 关于可变产品:

    • 关于可变产品的价格(自 WooCommerce 3+ 起),它们的价格(元键 _prices)与它的变化一样多。因此查询元键 _prices 可能会出错,因为第一个可用价格将被采用(或者可能是全部或没有)
    • 关于产品属性不是那么简单,有2种:
      • 普通产品属性(例如简单产品)
      • 为变体启用产品属性。

    注意:可变产品默认显示在产品循环中,但它们永远不会显示在购物车项目和订单项目中

    出于所有这些原因您的查询无论如何都无法正常工作,即使有或没有"orderby" => "meta_value_num",

    您的查询中也存在一些错误或错误,例如:

    • 在您的 tax_query 中为"taxonomy" => "pa_color", "field" 必须是 "slug" 而不是 "term_id"
    • 'post_status' => 'publish', 不见了。
    • 不需要"operator" => "IN""relation" => "AND",因为它们是默认参数。

    所以这并不能解决你的问题,但会告诉你这是不可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 2017-05-12
      • 1970-01-01
      • 2018-07-31
      • 2018-08-26
      • 1970-01-01
      • 2021-02-04
      相关资源
      最近更新 更多