将发布日期设置为1970年之前


10

我有一个称为书的自定义帖子类型。书籍出版日期为1700年至1900年。

我想将发布日期设置为这些日期(以便我可以查询按年份排序的结果),但是我似乎无法将日期设置为1970年1月1日之前。

有可能以某种方式做到这一点吗?


据我所知,发布日期的上限是1902
。– Wyck

我查看了一下,post_date数据库中的正确设置为我尝试的任何日期。但是,post_date_gmt错误地将其设置为1970年1月1日-世界的开始。因此,请勿尝试采用该领域。做出建议。
s_ha_dum 2013年

+1个好问题!搜索1970 在此处SO都有有趣的结果。该插件似乎没有很好的编码,但可能是值得一 ...
brasofilo

Answers:


10

不要将post_date字段用于任何非必需的内容。请改用post meta字段。该post_date必然post_date_gmt,你会得到奇怪的副作用,甚至你可以得到提前成。

因此,创建后元字段并根据每个税额查询进行查询。忽略默认字段。

回答您的评论:不要使用分类法。

  1. 建立分类法是为了允许每个帖子使用多个术语(在此忽略帖子格式)。该方案与您的用例不匹配。
  2. 分类查询很昂贵,它们遍历三个表。
  3. 您将必须更改默认界面,以防止发生诸如多次分配之类的事故。可能,但不是很简单,也可能不是前向兼容的。

我也曾经启动过一个图书管理器插件,不幸的是它仍然处于草稿状态……但是我对日期有一些建议:

  1. 使用两种发布类型:一种用于发表,一种用于实际版本(该opus类型将是多个版本的父项)。因此,您可以将创建日期存储在作品中,将发布日期(语言,编辑器,翻译器等)存储在版本中。

  2. 阅读确保<time>历史学家安全。1970年以前的日子很难过。

  3. MySQL的日期和时间函数不能处理所有的情况下,你最终分拣一些自定义程序,这取决于你的(2)解决方案。


谢谢!我的客户向我发送了一个包含书籍的xml文件,然后将其导入到wordpress中。我只写了几年的书,所以我决定为这些年创建一个自定义分类法,但是后来我发现我无法基于此来排序查询。但是,如果我可以通过自定义字段进行订购,那么我也想这样很好。
passatgt

让我问您,您认为如何,多年来使用自定义分类法是否足够好?我认为我可以创建一个自定义sql查询以根据术语名称对结果进行排序(因为db结构也与post meta解决方案基本相同),而且我认为在后端管理Years + books稍微容易一些。
passatgt

@passatgt查看我的更新。简短:不,不要那样做。:)
fuxia

得到它了。值得一提的是,我有25,000本书:)
passatgt 2013年

1

该插件使用PHP Everywhere的John Lim编写的ADOdb Date Library,这是我引用的“使带有1970年以前日期的日期格式成为一种魅力”。


该插件的功能超出了OP的要求,目前尚不清楚该插件内部是否使用了日期格式,或者是否也为WordPress核心功能启用了相同的日期格式。您知道其中任何一个问题的答案吗?
s_ha_dum

我只想强调Lim的库,以及它如何在WP插件中实现。关于第二个问题,核心功能没有改变,该插件将日期存储在自定义数据库表中。
diggy 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.