2010-08-09 52 views
0

我試圖顯示過期的職位AFTER未過期的職位。我怎樣才能做到這一點?WordPress的 - 按截止日期排序的文章

我已經添加了一個自定義字段「過期日期」,其中我以yyyy/mm/dd格式存儲到期日期。問題是,如果我通過這個領域命令我的結果,未來的失效日期將首先出現。

因此,我創建了一個重複的cron-job,比較日期併爲日期已過的帖子創建次要自定義字段「到期日期已過」。我嘗試通過此字段進行排序,但WP僅顯示具有此字段值的帖子 - 未顯示過期日期或過期日期的IE帖子未顯示。所以我嘗試爲尚未過期的任何帖子自動添加值「99999999」。問題是,WP無法按自定義字段值排序THEN date-IE值爲'99999999'的第一篇文章是隨機排列的。

我也試過對帖子做兩個查詢,一個沒有過期的帖子,一個是,然後合併這兩個數組。所以這些數據是按照正確的順序排列的 - 但它搞砸了WP的分頁。

幫助,我正在用盡想法!

回答

0

可能工作的方式,但我想在我的類別的職位進行排序頁面。 Wp_get_recent_posts函數通常用於創建自定義循環,而不是修改類別(歸檔模板)頁面中的「循環」。

最後我用它對它進行了排序。我將此代碼添加到我的檔案模板的頂部:

global $query_string; 
query_posts($query_string . "&orderby=meta_value&meta_key=Expiration Date Passed&order=DESC"); 

我創建了一個名爲「已過期日期」一「之類的」自定義字段。然後,cron作業會查看該帖子是否有到期日期。如果沒有,或者日期是未來,則會將該帖子的發佈日期+ 20年放入排序列中。如果帖子的過期已過,則會將帖子的發佈日期置於排序列中。因此,它會導致我以後的順序:

1)的帖子已經沒有過期,按照日期順序 2)哪些職位已經過期,按照日期順序

以爲我會發布的情況下,任何人的解決方案其他人想知道。

0

既然你已經「已過期日期」的自定義字段,你可以先創建兩套使用您的get_posts論點,即自定義字段當前&過期帖子區分

$ meta_key帖子和$ meta_value (字符串)(可選)僅顯示包含帶有此鍵和值的元(自定義)字段的帖子。這兩個參數都必須定義,否則都不會起作用。 默認值:無

摘自: http://codex.wordpress.org/Function_Reference/wp_get_recent_posts

,那麼你就可以梳理各設置要