我正在嘗試查詢WordPress帖子,並通過自定義元鍵對它們進行排序。這裏的查詢我:如何通過WordPress MySQL查詢中的元鍵值進行排序?
SELECT distinct wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = 'closed'
AND wpostmeta.meta_value = '1'
AND wposts.post_status = 'publish'
AND wposts.post_type = 'auction'
ORDER BY (wpostmeta.meta_value AND wpostmeta.meta_key = 'end_date') ASC
LIMIT 10
這讓我我想要的職位,但它並不由Meta「鍵END_DATE」訂購。我也嘗試過以下格式:
$args = array(
'post_type' => 'auction',
'post_status' => 'publish',
'posts_per_page' => 10,
'meta_key' => 'end_date',
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_query' => array(
array(
'key' => 'closed',
'value' => '1',
'compare' => '=',
)
)
);
$closed_auctions = new WP_Query($args);
但是,這會以隨機順序返回帖子,方式多於10次並且重複多次。
此外,我試圖訂購的字段是日期,格式爲MM/DD/YYYY,但我相信它存儲爲長文本。在訂購前我必須做任何轉換嗎?
這(差不多)工作,謝謝!但是,這仍然不會通過meta_key'end_date'排序結果,因爲我之前已經在查詢中將meta_key設置爲'closed'。我所做的是查詢在結束日期排序的所有拍賣,從查詢中刪除meta_key'closed',然後迭代結果數組,將第二個數組中僅存儲meta_key'closed'的帖子存儲爲1。 –