问题描述
我有一个叫做书籍的自定义帖子类型。书籍出版日期从 1700 年到 1900 年。
我想将发布日期设置为这些日期 (所以我可以查询按年份排序的结果),但我似乎没有在 1970 年 1 月 1 日之前设置日期。
有可能以某种方式做到这一点吗?
最佳解决方案
不要将 post_date
字段用于不作为的任何东西。改用后期字段。 post_date
必须与 post_date_gmt
一起使用,即使您可以获得较早的日期,也会产生奇怪的副作用。
因此,创建后期元字段并查询每个 tax query 。忽略默认字段。
回答你的评论:不要使用分类。
-
构建分类法以允许每个帖子多个术语 (在此忽略 post-formats) 。该方案与您的用例不符。
-
分类查询是昂贵的,它们通过三个表来运行。
-
您将不得不更改默认界面以防止多次分配等事故。可能,但不完全简单,也许不是 forward-compatible 。
我也开始一个图书管理器插件,不幸的是它仍然处于草案状态… 但是我有一些关于日期的建议:
-
使用两个帖子类型:一个用于 opus,一个用于实际版本 (
opus
类型将是多个版本的父级) 。因此,您可以将创作日期存储在版本中,出版日期 (语言,编辑器,翻译器等) 。 -
阅读使
<time>
为历史学家安全。 1970 年以前的日子很辛苦。 -
MySQL Date and Time Functions 无法处理所有情况,您最终可以使用一些用于排序的自定义例程,具体取决于 (2.) 的解决方案。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。