問題描述

我有一個叫做書籍的自定義帖子類型。書籍出版日期從 1700 年到 1900 年。

我想將發佈日期設置為這些日期 (所以我可以查詢按年份排序的結果),但我似乎沒有在 1970 年 1 月 1 日之前設置日期。

有可能以某種方式做到這一點嗎?

最佳解決方案

不要將 post_date 字段用於不作為的任何東西。改用後期字段。 post_date 必須與 post_date_gmt 一起使用,即使您可以獲得較早的日期,也會產生奇怪的副作用。

因此,創建後期元字段並查詢每個 tax query 。忽略默認字段。

回答你的評論:不要使用分類。

  1. 構建分類法以允許每個帖子多個術語 (在此忽略 post-formats) 。該方案與您的用例不符。

  2. 分類查詢是昂貴的,它們通過三個表來運行。

  3. 您將不得不更改默認界面以防止多次分配等事故。可能,但不完全簡單,也許不是 forward-compatible 。

我也開始一個圖書管理器插件,不幸的是它仍然處於草案狀態… 但是我有一些關於日期的建議:

  1. 使用兩個帖子類型:一個用於 opus,一個用於實際版本 (opus 類型將是多個版本的父級) 。因此,您可以將創作日期存儲在版本中,出版日期 (語言,編輯器,翻譯器等) 。

  2. 閲讀使<time> 為歷史學家安全。 1970 年以前的日子很辛苦。

  3. MySQL Date and Time Functions 無法處理所有情況,您最終可以使用一些用於排序的自定義例程,具體取決於 (2.) 的解決方案。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。