กำหนดวันที่โพสต์ก่อนปี 1970


10

ฉันมีประเภทโพสต์ที่กำหนดเองที่เรียกว่าหนังสือ วันที่จัดพิมพ์หนังสืออยู่ระหว่าง 1700 ถึง 1900

ฉันต้องการตั้งค่าวันที่โพสต์เป็นวันที่เหล่านี้ (ดังนั้นฉันสามารถสืบค้นผลลัพธ์เรียงตามปี) แต่ฉันไม่สามารถกำหนดวันที่ก่อนปี 1970 มกราคม 1

เป็นไปได้ไหมที่จะทำเช่นนั้น?


เท่าที่ฉันสามารถบอกได้ว่าวันที่โพสต์นั้นถูก จำกัด ที่ 1902
Wyck

ฉันดูที่นี่และpost_dateในฐานข้อมูลตั้งค่าอย่างถูกต้องถึงวันที่ฉันพยายาม อย่างไรก็ตามpost_date_gmtมีการตั้งค่าไม่ถูกต้อง 1 มกราคม 1970-- จุดเริ่มต้นของโลก ดังนั้นอย่าพยายามสุ่มเขตข้อมูลนั้น ทำในสิ่งที่สะท้อนให้เห็น
s_ha_dum

+1 คำถามที่ดี! กำลังหา 1970 มีที่น่าสนใจผลที่นี่และที่SO ปลั๊กอินไม่ได้ดูเหมือนรหัสดีมาก แต่อาจจะคุ้มค่าดู ...
brasofilo

คำตอบ:


10

อย่าใช้post_dateฟิลด์สำหรับสิ่งที่ไม่ได้ทำ ใช้ฟิลด์โพสต์เมตาแทน สิ่งที่post_dateถูกผูกไว้post_date_gmtคือคุณจะได้รับผลข้างเคียงที่แปลกแม้คุณจะได้รับวันที่ก่อนหน้านั้น

ดังนั้นการสร้างช่องเมตาโพสต์และสอบถามผู้ที่ต่อแบบสอบถามภาษี ละเว้นฟิลด์เริ่มต้น

เพื่อตอบความคิดเห็นของคุณ: อย่าใช้อนุกรมวิธาน

  1. Taxonomies เป็นการสร้างเพื่ออนุญาตให้มีหลายคำต่อโพสต์ (ไม่ต้องโพสต์รูปแบบที่นี่) รูปแบบไม่ตรงกับกรณีการใช้งานของคุณ
  2. เคียวรี Taxonomy มีราคาแพงโดยเรียกใช้ผ่านสามตาราง
  3. คุณจะต้องเปลี่ยนส่วนต่อประสานเริ่มต้นเพื่อป้องกันอุบัติเหตุเช่นการมอบหมายหลายอย่าง เป็นไปได้ แต่ไม่ง่ายอย่างแน่นอนและอาจเข้ากันไม่ได้กับฟอร์เวิร์ด

ฉันเริ่มปลั๊กอินตัวจัดการหนังสือด้วยเช่นกันโชคไม่ดีที่มันยังอยู่ในสถานะร่าง ... แต่ฉันมีคำแนะนำบางอย่างเกี่ยวกับวันที่:

  1. ใช้โพสต์สองประเภท: หนึ่งประเภทสำหรับบทประพันธ์ประเภทหนึ่งสำหรับรุ่นจริง ( opusประเภทจะเป็นพาเรนต์สำหรับหลายรุ่น) ดังนั้นคุณสามารถเก็บวันที่สร้างไว้ในบทประพันธ์, วันที่เผยแพร่ (ภาษา, บรรณาธิการ, นักแปลและอื่น ๆ ) ในรุ่น

  2. อ่านทำ<time>ที่ปลอดภัยสำหรับนักประวัติศาสตร์ วันที่ก่อนปี 1970 นั้นยาก

  3. วัน MySQL และฟังก์ชั่นเวลาที่ไม่สามารถจัดการกับทุกกรณีคุณจะจบลงด้วยการปฏิบัติที่กำหนดเองสำหรับการเรียงลำดับขึ้นอยู่กับวิธีการแก้ปัญหาของคุณสำหรับการ (2)


ขอบคุณ! ลูกค้าของฉันส่งไฟล์ xml พร้อมหนังสือและฉันนำเข้าไฟล์นั้นลงในเวิร์ดเพรส ฉันมีหนังสือเป็นเวลาหลายปีเท่านั้นดังนั้นฉันตัดสินใจที่จะสร้าง taxonomy ที่กำหนดเองสำหรับปี แต่แล้วฉันก็พบว่าฉันไม่สามารถสั่งแบบสอบถามตามสิ่งนี้ได้ แต่ถ้าฉันสามารถสั่งซื้อโดยฟิลด์ที่กำหนดเองแล้วฉันเดาว่ามันก็เป็นอย่างนั้น
passatgt

ให้ฉันถามคุณว่าคุณคิดว่าเป็นวิธีที่ดีพอที่จะใช้อนุกรมวิธานแบบกำหนดเองสำหรับปีหรือไม่ ฉันคิดว่าฉันสามารถสร้างการสืบค้น sql แบบกำหนดเองเพื่อเรียงลำดับผลลัพธ์ตามชื่อคำศัพท์ (เนื่องจากโครงสร้างฐานข้อมูลนั้นเหมือนกันกับโพสต์เมตาโซลูชั่นเกินไป) และฉันคิดว่ามันง่ายกว่านิดหน่อยในการจัดการปี + หนังสือในแบ็กเอนด์ .
passatgt

@passatgt ดูการอัปเดตของฉัน สั้น: ไม่อย่าทำอย่างนั้น :)
fuxia

เข้าใจแล้ว คุ้มค่าที่จะพูดถึงว่าฉันมีหนังสือ 25.000 เล่ม :) :)
13

1

ปลั๊กอินนี้ใช้ADOdb Date Libraryโดย John Lim ของ PHP ทุกหนทุกแห่งซึ่งก็คือ - ฉันอ้าง - "การจัดรูปแบบวันที่ด้วยวันที่ก่อนปี 1970 เสน่ห์"


ปลั๊กอินนั้นทำได้มากกว่าที่ OP ขอมาและมันก็ไม่ชัดเจนว่ามันจะใช้การจัดรูปแบบวันที่ภายในหรือไม่หรือถ้ามันเปิดใช้งานการจัดรูปแบบวันที่เดียวกันสำหรับฟังก์ชั่นหลักของ WordPress คุณรู้คำตอบสำหรับคำถามเหล่านี้หรือไม่?
s_ha_dum

ฉันแค่ต้องการเน้นห้องสมุดของ Lim และวิธีการนำไปใช้ในปลั๊กอิน WP สำหรับคำถามที่สองของคุณฟังก์ชั่นหลักจะไม่เปลี่ยนแปลงปลั๊กอินเก็บวันที่ในตารางฐานข้อมูลที่กำหนดเอง
Diggy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.