Tetapkan tanggal posting sebelum tahun 1970


10

Saya memiliki jenis posting khusus yang disebut buku. Tanggal penerbitan buku adalah antara 1700 dan 1900.

Saya ingin mengatur tanggal posting ke tanggal-tanggal ini (jadi saya bisa meminta hasil diurutkan berdasarkan tahun) tetapi saya tidak bisa menetapkan tanggal sebelum 1970 Januari 1.

Apakah mungkin untuk melakukan itu?


Sejauh yang saya tahu tanggal posting ditutup pada 1902.
Wyck

Saya melihat ini dan post_dateset database dengan benar untuk setiap tanggal saya mencoba. Namun, post_date_gmtditetapkan secara tidak benar sebagai 1 Januari 1970 - awal dunia . Jadi jangan coba-coba memilih bidang itu. Lakukan apa yang toscho sarankan.
s_ha_dum

+1 Pertanyaan bagus! Mencari 1970 memiliki hasil yang menarik di sini dan di SO . Plugin ini sepertinya tidak memiliki kode yang sangat baik, tetapi mungkin patut dilihat ...
brasofilo

Jawaban:


10

Jangan gunakan post_datebidang untuk apa pun yang tidak dibuat untuknya. Gunakan bidang meta pos sebagai gantinya. The post_dateadalah terikat untukpost_date_gmt , Anda akan mendapatkan efek samping yang aneh bahkan Anda bisa mendapatkan tanggal yang lebih awal ke dalam.

Jadi buat kolom meta pos dan kueri per kueri pajak . Abaikan bidang default.

Sebagai jawaban atas komentar Anda: Jangan gunakan taksonomi.

  1. Taksonomi dibuat untuk memungkinkan beberapa istilah per pos (abaikan format pasca di sini). Skema tidak cocok dengan kasus penggunaan Anda.
  2. Permintaan taksonomi itu mahal, mereka dijalankan melalui tiga tabel.
  3. Anda harus mengubah antarmuka default untuk mencegah kecelakaan seperti banyak tugas. Mungkin, tetapi tidak persis sederhana dan mungkin tidak kompatibel dengan maju.

Saya juga pernah memulai plugin pengelola buku, sayangnya masih dalam status konsep ... tetapi saya memiliki beberapa rekomendasi mengenai tanggal:

  1. Gunakan dua jenis posting: satu untuk karya, satu untuk edisi asli ( opusjenisnya akan menjadi induk untuk beberapa edisi). Jadi, Anda dapat menyimpan tanggal pembuatan dalam karya, tanggal publikasi (bahasa, editor, penerjemah, dan sebagainya) di edisi.

  2. Baca Membuat <time>aman untuk sejarawan . Tanggal sebelum tahun 1970 sulit.

  3. Fungsi Tanggal dan Waktu MySQL tidak dapat menangani semua kasus, Anda berakhir dengan beberapa rutin khusus untuk menyortir, tergantung pada solusi Anda untuk (2.).


Terima kasih! Klien saya mengirimi saya file xml dengan buku-buku dan saya mengimpornya ke wordpress. Saya hanya punya tahun untuk buku jadi saya memutuskan untuk membuat taksonomi kustom selama bertahun-tahun, tetapi kemudian saya menemukan bahwa saya tidak dapat memesan permintaan berdasarkan ini. Tetapi jika saya bisa memesan berdasarkan bidang khusus, maka saya kira tidak masalah juga.
passatgt

Izinkan saya bertanya kepada Anda, bagaimana menurut Anda, apakah ini solusi yang cukup baik untuk menggunakan taksonomi khusus selama bertahun-tahun? Saya pikir saya dapat membuat kueri sql kustom untuk mengurutkan hasil berdasarkan nama istilah (karena struktur db pada dasarnya sama dengan solusi pos meta juga) dan saya pikir itu sedikit lebih mudah untuk mengelola tahun + buku di backend .
passatgt

@passatgt Lihat pembaruan saya. Singkat: tidak, jangan lakukan itu. :)
fuxia

Oke. Layak untuk disebutkan, bahwa saya punya 25.000 buku :)
passatgt

1

Plugin ini menggunakan ADOdb Date Library oleh John Lim dari PHP Everywhere, yang - saya kutip - "membuat format tanggal dengan tanggal sebelum tahun 1970 menjadi pesona".


Plugin itu melakukan lebih dari yang diminta OP dan tidak jelas apakah format tanggal digunakan secara internal oleh plugin atau apakah itu juga memungkinkan format tanggal yang sama untuk fungsi inti WordPress. Apakah Anda tahu jawaban untuk semua pertanyaan itu?
s_ha_dum

Saya hanya ingin menyoroti perpustakaan Lim, dan bagaimana itu diterapkan dalam plugin WP. Mengenai pertanyaan kedua Anda, fungsi inti tidak diubah, plugin menyimpan tanggal dalam tabel basis data khusus.
Diggy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.