2017-04-20 138 views
0

我想通過折扣金額訂購我的產品。 我已保存的折扣都在我的元交了一些所謂的「打折」,但是當我使用下面的代碼:WordPress的訂單不會訂購文章

$productArgs = array(
    'posts_per_page' => 20, 
    'post_type'   => 'product', 
    'meta_key'   => 'discount', 
    'orderby'   => 'meta_value_decimal', 
    'order'    => 'DESC', 
    'meta_type'   => 'DECIMAL', 
); 

$test = $productArgs; 

$products = get_posts($productArgs); 

,產品展示,如:0%,50%,55%,28 %。 即使我將order更改爲ASC,輸出也沒有任何反應。

我也試過'orderby' => 'meta_value,沒有'meta_type'

有沒有人有一個想法可以造成這種情況?

編輯:

我想通了,我的錯誤。我的帖子被添加到陣列中,與ID爲數組鍵,通過分選後的ID。

+0

不得''orderby'=>'discount''? https://developer.wordpress.org/reference/functions/get_posts/#source而''meta_value'=>'decimal''? https://developer.wordpress.org/reference/classes/wp_query/parse_query/ – JustOnUnderMillions

+0

meta_query呢? https://codex.wordpress.org/Class_Reference/WP_Meta_Query – NewUser

+0

@NewUser - 我只需要按meta_value排序 - 無論它是0還是100,都沒關係,所以我不明白我該如何使用meta_query來做到這一點。 – rblarsen

回答

0

如果折扣字段都是數字,請嘗試'orderby' => 'meta_value_num'並刪除meta_type參數。

+0

我已經嘗試過了,並且它不工作,不幸的是.. – rblarsen

0

您可以定義的元鍵orderBy參數一樣,

query_posts(
    array( 'post_type' => 'product', 
      'order'  => 'ASC', 
      'meta_key' => 'discount', 
      'orderby' => 'meta_value', //or 'meta_value_num' 
      'meta_query' => array(
           array('key' => 'order_in_archive', 
             'value' => 'some_value' 
           ) 
          ) 
    ) 
); 

希望這會工作。