Postdatum vor 1970 festlegen

10

Ich habe einen benutzerdefinierten Beitragstyp namens Bücher. Das Veröffentlichungsdatum der Bücher liegt zwischen 1700 und 1900.

Ich möchte das Post-Datum auf diese Daten setzen (damit ich die Ergebnisse nach Jahr sortieren kann), aber ich kann anscheinend kein Datum vor dem 1. Januar 1970 festlegen.

Ist das irgendwie möglich?

passatgt
quelle
Soweit ich das beurteilen kann, ist das Post-Datum auf 1902 begrenzt.
Wyck
Ich habe mir das angeschaut und das post_datein der Datenbank ist korrekt auf jedes Datum eingestellt, das ich versucht habe. Allerdings post_date_gmtist falsch eingestellt , wie 1. Jan. 1970-- Anfang der Welt . Versuchen Sie also nicht, dieses Feld zu übernehmen. Mach was toscho vorschlägt.
s_ha_dum
+1 schöne Frage! Die Suche nach 1970 hat hier und bei SO interessante Ergebnisse . Das Plugin scheint nicht sehr gut codiert zu sein, ist aber vielleicht einen Blick wert ...
brasofilo

Antworten:

10

Verwenden Sie das post_dateFeld nicht für Dinge, für die es nicht gemacht ist. Verwenden Sie stattdessen ein Post-Meta-Feld. Das post_dateist gebundenpost_date_gmt , Sie würden seltsame Nebenwirkungen bekommen, selbst wenn Sie ein früheres Datum dafür bekommen könnten.

Erstellen Sie also Post-Meta-Felder und fragen Sie diese pro Steuerabfrage ab . Ignorieren Sie das Standardfeld.

Antwort auf Ihren Kommentar: Verwenden Sie keine Taxonomie.

  1. Taxonomien sind bauen mehrere Begriffe pro Beitrag (ignorieren ermöglichen post-Formate hier). Das Schema entspricht nicht Ihrem Anwendungsfall.
  2. Taxonomie-Abfragen sind teuer, sie durchlaufen drei Tabellen.
  3. Sie müssten die Standardschnittstelle ändern, um Unfälle wie Mehrfachzuweisungen zu vermeiden. Möglich, aber nicht gerade einfach und möglicherweise nicht vorwärtskompatibel.

Ich habe auch einmal ein Buchmanager-Plugin gestartet, leider befindet es sich noch in einem Entwurfsstatus… aber ich habe einige Empfehlungen bezüglich der Daten:

  1. Verwenden Sie zwei Beitragstypen: einen für das Werk und einen für die realen Ausgaben (der opusTyp wäre ein übergeordneter Typ für mehrere Ausgaben). So können Sie das Erstellungsdatum im Werk, das Veröffentlichungsdatum (die Sprache, den Herausgeber, den Übersetzer usw.) in der Ausgabe speichern.

  2. Lesen Sie <time>Sicherheit für Historiker . Daten vor 1970 sind schwer.

  3. Die MySQL-Datums- und Zeitfunktionen können nicht alle Fälle behandeln. Abhängig von Ihrer Lösung für (2.) stehen Ihnen einige benutzerdefinierte Routinen zum Sortieren zur Verfügung.

Fuxia
quelle
Vielen Dank! Mein Kunde hat mir eine XML-Datei mit den Büchern geschickt und diese in WordPress importiert. Ich habe nur die Jahre für die Bücher, also habe ich beschlossen, eine benutzerdefinierte Taxonomie für die Jahre zu erstellen, aber dann habe ich herausgefunden, dass ich die Abfrage basierend darauf nicht bestellen kann. Aber wenn ich nach benutzerdefiniertem Feld bestellen kann, dann denke ich, dass es auch so gut ist.
passatgt
Lassen Sie mich fragen, was denken Sie, ist es eine gute Lösung, um eine benutzerdefinierte Taxonomie für die Jahre zu verwenden? Ich denke, ich kann eine benutzerdefinierte SQL-Abfrage erstellen, um die Ergebnisse basierend auf dem Begriff Namen zu sortieren (da die Datenbankstruktur im Grunde auch mit der Post-Meta-Lösung identisch ist), und ich denke, es ist ein wenig einfacher, die Jahre + Bücher im Backend zu verwalten .
passatgt
@passatgt Siehe mein Update. Kurz: Nein, tu das nicht. :)
Fuxia
Ich habs. Erwähnenswert ist jedoch, dass ich 25.000 Bücher habe :)
passatgt
1

Dieses Plugin verwendet die ADOdb-Datumsbibliothek von John Lim von PHP Everywhere, die - ich zitiere - "die Datumsformatierung mit Datumsangaben vor 1970 zu einem Zauber macht".

diggy
quelle
Dieses Plugin macht mehr, als das OP verlangt, und es ist nicht klar, ob die Datumsformatierung intern vom Plugin verwendet wird oder ob es auch die gleiche Datumsformatierung für WordPress-Kernfunktionen ermöglicht. Kennen Sie die Antworten auf diese Fragen?
s_ha_dum
Ich wollte nur Lims Bibliothek hervorheben und wie sie in einem WP-Plugin implementiert ist. Bei Ihrer zweiten Frage werden die Kernfunktionen nicht geändert. Das Plugin speichert die Daten in einer benutzerdefinierten Datenbanktabelle.
Diggy