簡體   English   中英

Woocommerce產品的WP_Query中的Orderby價格問題

[英]Orderby price issue in a WP_Query for Woocommerce products

我正在嘗試按價格對我的產品進行排序,但是效果不佳,它只返回我的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 );

1)關於產品變化:

  • Woocommerce自定義分類法作為產品類別產品標簽 未在產品變體中啟用 ,但在其父變量產品中 啟用

  • 產品屬性 (用於變體)無法通過稅收查詢獲得。 對於產品變體,它們被設置為元數據,例如attribute_pa_color (所有鍵均以attribute_開頭),並且每個值的值都為詞條

因此,您無法同時對product類型productproduct_variation進行查詢。

注意: 默認情況下,產品循環中不會顯示產品版本。 它們僅顯示在購物車項目和訂單項目中

2)關於可變產品:

  • 關於可變產品的價格(自WooCommerce 3+起) ,其價格將與變化中的價格一樣多(元鍵_prices )。 因此,查詢元鍵_prices可能會出錯,因為將采用第一個可用價格(或可能全部或全部不提供)
  • 關於產品屬性,它不是那么簡單,只有兩種:
    • 常規產品屬性(如簡單產品)
    • 產品屬性已啟用變化。

注意:可變產品默認情況下顯示在產品循環中, 但從不顯示在購物車項目和訂購項目中

由於所有這些原因,即使有或沒有"orderby" => "meta_value_num", 您的查詢也無法正常工作

您的查詢中還存在一些錯誤或錯誤,例如:

  • 在您的tax_query"taxonomy" => "pa_color", "field"必須為"slug"而不是"term_id"
  • 'post_status' => 'publish',丟失。
  • 不需要"operator" => "IN""relation" => "AND" ,因為它們是默認參數。

因此,這不能解決您的問題,但是向您顯示不可能以這種方式進行操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM