web-dev-qa-db-ja.com

1970年以前の投稿日を設定する

本と呼ばれるカスタム投稿タイプがあります。書籍の出版日は1700年から1900年です。

投稿日をこれらの日にちに設定したいのですが(結果を年順に並べ替えて照会できます)、1970年1月1日より前に日付を設定することはできません。

どういうわけかそれは可能ですか?

10
passatgt

それ以外の目的でpost_dateフィールドを使用しないでください。代わりに投稿メタフィールドを使用してください。 post_datepost_date_gmt にバインドされているので、もっと早い日付にしても奇妙な副作用があるでしょう。

そのため、投稿メタフィールドを作成し、 tax query ごとにクエリします。デフォルトのフィールドを無視します。

あなたのコメントに答えて:分類法を使用しないでください。

  1. 分類は、投稿ごとに複数の用語を許可するように構築されています( post-format は無視します)。このスキームはあなたのユースケースと一致しません。
  2. 分類クエリは高価です、彼らは3つのテーブルを介して実行されます。
  3. あなたは複数の課題のような事故を防ぐためにデフォルトのインターフェースを変更しなければならないでしょう。可能ですが、厳密には単純ではなく、前方互換性がないかもしれません。

私はブックマネージャプラグインも一度始めました、残念ながらそれはまだドラフトの状態にあります…しかし私は日付に関していくつかの勧告があります:

  1. 2つの投稿タイプを使用します。1つはオーパス用、もう1つは実際のエディション用です(opusタイプは複数のエディションの親になります)。そのため、作成日をopusに、発行日(言語、編集者、翻訳者など)を版に格​​納できます。

  2. 歴史家にとって<time>を安全にする を読んでください。 1970年以前の日付は難しいです。

  3. MySQLの日付と時刻関数 はすべてのケースを処理できるわけではありません。(2.)の解決方法によっては、ソート用のカスタムルーチンがいくつかあります。

10
fuxia

このプラグインは を使用しています ADOdb日付ライブラリ PHPのJohn Limによる、これは全部です - 私は引用 - "日付のフォーマットを作る1970年以前の日付では魅力的です "#:。

1
diggy