Mam niestandardowy typ postu o nazwie książki. Data wydania książki wynosi od 1700 do 1900 roku.
Chcę ustawić datę publikacji na te daty (dzięki czemu mogę wyszukiwać wyniki posortowane według roku), ale nie mogę ustawić daty przed 1 stycznia 1970 r.
Czy można to jakoś zrobić?
custom-post-types
date
passatgt
źródło
źródło
post_date
zestawy w bazie danych poprawnie na dowolną datę, którą próbowałem. Jednakpost_date_gmt
jest ustawiony niepoprawnie jako 1 stycznia 1970 r . - początek świata . Więc nie próbuj przejmować tego pola. Zrób to, co sugeruje Toscho.Odpowiedzi:
Nie używaj tego
post_date
pola do niczego, do czego nie jest przeznaczone. Zamiast tego użyj pola meta post.post_date
Jest związanypost_date_gmt
, co można uzyskać dziwny efekt uboczny nawet można dostać wcześniejszą datę do tego.Stwórz więc post-meta pola i przeszukuj je według zapytania podatkowego . Zignoruj pole domyślne.
W odpowiedzi na Twój komentarz: Nie używaj taksonomii.
Raz też uruchomiłem wtyczkę menedżera książek, niestety wciąż ma ona wersję roboczą… ale mam kilka zaleceń dotyczących dat:
Użyj dwóch typów postów: jeden dla opusu, jeden dla prawdziwych wydań (
opus
typ byłby rodzicem dla wielu wydań). Możesz więc zapisać datę utworzenia w opusie, datę publikacji (język, edytor, tłumacz itd.) W wydaniu.Czytaj Making
<time>
bezpieczna dla historyków . Daty sprzed 1970 roku są trudne.Funkcje daty i czasu MySQL nie mogą obsłużyć wszystkich przypadków, w wyniku czego powstają niestandardowe procedury sortowania, w zależności od rozwiązania dla (2.).
źródło
Ta wtyczka korzysta z biblioteki dat ADOdb autorstwa Johna Lim z PHP Everywhere, która - cytuję - „sprawia, że formatowanie daty z datami sprzed 1970 roku jest urokiem”.
źródło