2012-11-15 33 views
2

我想創建一個query_posts,其中我首先按自定義字段(Facebook Like)的次數排序,然後按日期排序。但我不知道如何。Wordpress query_posts按元鍵排序AND date

我的查詢看起來像這樣ATM:

$social_query = array(
'meta_key' => 'facebook_likes', 
'orderby' => 'meta_value_num', 
'order' => 'DESC', 
'posts_per_page' => 10, 
'paged' => (int) $paged 
); 
query_posts($social_query); 

現在的職位獲得通過Facebook的喜歡的次數來排序。這工作正常。但是,如果有相同數量的喜歡的帖子,他們會隨機排序,這就是問題所在。如果有與Facebook相同數量的帖子,他們應該按日期排序。

你能幫助我嗎?

回答

3

WordPress允許您指定多個orderby參數。要做到這一點,你只需將每個參數分隔開即可。這是新的查詢應該如何看起來像:

$social_query = array(
    'meta_key' => 'facebook_likes', 
    'orderby' => 'meta_value_num date', 
    'order' => 'DESC', 
    'posts_per_page' => 10, 
    'paged' => (int) $paged 
); 
query_posts($social_query); 

我不知道這是否會導致你的願望的順序,但是這就是WordPress允許你做它的內置功能。

+0

感謝您的回答。我試過你的版本,但是這些帖子只能按日期排序,而不是按照面書的喜好來排序。 –

+0

當我測試時,我看到訂單包含在SQL查詢中(所以它類似於'ORDER BY wp_postmeta.meta_key,wp_posts.date'),但我想它可能無法按照人們預期的方式工作。 –

+0

好的。你知道我如何得到我想要的訂單嗎? –