问题描述

我有一个叫做书籍的自定义帖子类型。书籍出版日期从 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。