1970年より前の投稿日を設定


10

本と呼ばれるカスタム投稿タイプがあります。書籍の発行日は1700〜1900です。

投稿日をこれらの日付に設定したいので(年でソートされた結果をクエリできます)、1970年1月1日より前に日付を設定できません。

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


私の知る限り、ポスト日付は1902で制限されて言うことができるように
ウィック

これを見てみるとpost_date、データベースのは、試した日付に正しく設定されています。ただし、post_date_gmt1970年1月1日、つまり世界の始まりとして誤って設定されています。したがって、そのフィールドを採用しようとしないでください。toschoの提案に従ってください。
s_ha_dum 2013年

素敵な質問+1!1970 検索すると、ここSO興味深い結果が得られます。プラグインはあまりコード化されていないようですが、一見の価値があるかもしれません...
brasofilo

回答:


10

作成されていないものにはpost_dateフィールドを使用しないでください。代わりにポストメタフィールドを使用してください。post_dateされにバインドされpost_date_gmt、あなたも、あなたがそれに以前の日付を得ることができる不思議な副作用になるだろう。

ポストメタフィールドを作成し、税金クエリごとにクエリを実行します。デフォルトのフィールドを無視します。

コメントへの回答:分類法を使用しないでください。

  1. 分類法は、投稿ごとに複数の用語を許可するように構築されています(ここでは投稿形式を無視します)。スキームがユースケースと一致していません。
  2. 分類クエリは高価で、3つのテーブルを実行します。
  3. 複数の割り当てのような事故を防ぐために、デフォルトのインターフェースを変更する必要があります。可能ですが、厳密には単純ではなく、おそらく上位互換ではありません。

ブックマネージャープラグインも1回始めましたが、残念ながらまだドラフトステータスですが、日付に関していくつかの推奨事項があります。

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

  2. 読む作り<time>の歴史家のための安全。1970年以前の日付は難しいです。

  3. MySQLの日付と時刻の関数は、すべてのケースを扱うことができない、あなたは(2)のためのソリューションに応じて、ソートのためのいくつかのカスタムルーチンで終わります。


ありがとう!私のクライアントは本を含むxmlファイルを送ってくれました。それをワードプレスにインポートしました。書籍の年しかないので、年ごとにカスタム分類を作成することにしましたが、これに基づいてクエリを注文できないことがわかりました。しかし、カスタムフィールドで注文できる場合は、その方法でも問題ないと思います。
passatgt 2013年

長年カスタムタクソノミを使用するのに十分なソリューションであると思いますか。カスタムSQLクエリを作成して、用語名に基づいて結果を並べ替えることができると思います(db構造は基本的にポストメタソリューションと同じであるため)。バックエンドで年数と本を管理する方が少し簡単だと思います。
passatgt 2013年

@passatgt更新を参照してください。ショート:いいえ、それをしないでください。:)
fuxia

とった。しかし、私が25.000冊の本を持っていることに言及する価値があります:)
passatgt

1

このプラグインは、PHP EverywhereのJohn LimによるADOdb日付ライブラリを使用します。これは、「1970年より前の日付の日付形式を魅力的なものにする」です。


そのプラグインは、OPが求めている以上のことを行い、日付フォーマットがプラグインによって内部で使用されているのか、それともWordPressコア関数に対して同じ日付フォーマットを有効にするのかは明確ではありません。これらの質問に対する答えを知っていますか?
s_ha_dum 2013年

Limのライブラリと、それがWPプラグインにどのように実装されているかを強調したかっただけです。2番目の質問については、コア関数は変更されません。プラグインは日付をカスタムデータベーステーブルに保存します。
1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.