2013-06-04 112 views
0

我有一個需要按時間順序的職位列表。這些字段都是自定義的,我使用的是高級自定義字段插件,但這應該不重要。在wordpress中,我需要做一個排序然後一個where子句......但我不能得到它的工作

我想要做的是先按日期排序項目然後做一個小於或等於今天的日期,然後我將其限制爲一個。從高層角度來看,我試圖從帖子列表中獲取下一個事件(event = 1 post)。

我環顧四周,試了幾個例子,但似乎沒有任何正確的命令。日期以長文本格式存儲在數據庫中,格式爲20130609 yyyymmdd。

我WP_Query:提前

$type = 'round'; 
$date = date('Ymd'); 
print $date; 
$args=array(
    'post_type' => $type, 
    'post_status' => 'publish', 
    'posts_per_page' => 1, 
    'meta_key' => 'race_date', 
    'meta_compare' => '<=', 
    'meta_value' => '20130603', //Test date 
    'orderby_meta_key' => 'race_date', 
    'orderby_order' => 'ASC', 
); 

謝謝你,如果你知道答案,你會介意解釋一點,因爲我覺得這個問題就來了很多次,其他的,但只適用於這個問題,而不是一般。

:)

+0

您無法爲您的查詢使用orderby =>'date'嗎? –

+0

這將是發佈日期,而不是比賽日期。 –

回答

1

看起來你meta_value是一個字符串,這就是爲什麼<=不工作。嘗試以整數形式傳遞參數並添加type => 'NUMERIC',這會將您的DB存儲的字符串處理爲一個數字。

編輯:看起來你也可以在你的情況[codex]使用DATE作爲type

+0

我試圖這樣:\t 'meta_query'=>數組( \t \t陣列( \t \t \t '鍵'=> 'race_date', \t \t \t '值'=> 20130605, '類型'=> '數字', \t \t \t '比較'> '<=' \t \t) \t)---但它仍然帶回第一結果。 –

+0

如果不是第一個,你期待的結果是什麼? – Sunyatasattva

+0

所以基本上我可以通過正確工作來獲得訂單。通過它的比賽日期字段排列每個帖子。然後我想要返回尚未發生的最近事件,這是不起作用的位。 –

相關問題