ปัญหา WordPress แสดงเนื้อหาได้ไม่เกิน 6,000 ตัวอักษร เกิดกับบล็อกผมมานานแล้ว แต่พยายามเลี่ยงปัญหามากกว่าแก้ปัญหามานานเช่นกัน เพราะเข้าใจว่ามันเป็นข้อจำกัดของ WordPress เอง
ปัญหาที่ว่าคือ เมื่อเราเขียนบล็อกที่มีความยาวมากๆ(>6,000 ตัว) เนื้อหาจะไม่โชว์เลย แต่ข้อมูลไม่หายนะ แค่ไม่แสดงเนื้อหาหน้าเว็บ ผมเลี่ยงปัญหาด้วยการ ตัดเนื้อหาออกบ้าง หรือแยกเป็นตอนย่อย วันนี้เลยลองแก้ปัญหาดูว่ามันเกิดจากอะไรกันแน่ มาดู log file ของการแก้ปัญหานี้กัน บันทึกไว้เผื่อมีประโยชน์กับคนอื่น ได้เรียนรู้ระหว่างทางเยอะเหมือนกันนะ
ใครขี้เกียจอ่าน อยากรู้ว่าต้นเหตุเป็นเพราะอะไร เลือนไปอ่านข้อสุดท้ายได้เลย
- อันดับแรกลองตรวจดูว่า โพสที่มันไม่แสดงนั้นมีตัวอักษรอยู่เท่าไหร่ เครื่องมือตรวสอบที่ง่ายมากๆ และใกล้ตัวสุด คือ twitter นี้เอง เข้าไปก็อบปี้ code จาก หน้า html แล้วว่างใน ช่อง tweet แล้ว +140 ก็ได้จำนวนตัวอักษรที่แท้จริงแล้ว
ตอนนี้ก็พอรู้จำนวนตัวอักษรคร่าวๆแล้ว ว่าจำนวนเท่าไหร่ที่มันไม่แสดงผลหน้าเว็บ
- สันนิษฐานแรก database ไม่รองรับหรือปล่าว จึงเข้าไปดู data type ว่าเลือกใช้แบบไหน เมื่อเข้าไปดูพบว่า เป็นแบบ longtext ซึ่งเก็บข้อมูลได้ 4,294,967,295 ตัว Ref ดังนั้นตัดปัญหา database ไม่รองรับไปได้เลย มันเก็บได้อยู่แล้ว
- ข้อต่อมา ลองเอาโพสที่มีปัญหาดังกล่าว(เกิน 6,000 characters) ไปโพสบล็อกอื่นที่ใช้ WordPress เหมือนกัน ข้อนี้จะบอกเราได้ว่า มันเป็นปัญหาเฉพาะบล็อกเรา หรือที่อื่นๆก็เป็น จะบอกได้ว่าเป็นปัญหาที่ WordPress Core หรือ ส่วนเสริมอื่นๆ ซึ่งได้ผลว่า ที่อื่น ไม่มีปัญหาดังกล่าว แสดงผลได้เป็นปกติ แสดงว่าบล็อกเราเองที่มีปัญหา
- ข้อสันนิษฐานต่อมา เป็นปัญหาที่ธีมที่เราเลือกใช้หรือปล่าว ทดลองเอาธีมที่ใช้อยู่ในปัจจุบัน ไปใช้ที่บล็อกอื่นแล้วดูโพสจากข้อ 3 ว่าแสดงผลได้ไหม พบว่าแสดงได้ปกติ แสดงว่าปัญหาไม่ใช่ธีม
- ข้อสันนิษฐานต่อมา ปัญหาอยู่ที่ ปลั๊กอินตัวไหนซักตัว เริ่มไล่ปิดดูทีละตัว และแล้วก็เจอมัน ตัวปัญหาคือ TweetMeme ปิดปุ๊บ content โผล่มาปั๊บเลย ส่วนเรื่องของเทคนิค ว่าทำไม? อันนี้ไม่รู้เหมือนกัน แต่ปัญหาได้รับการแก้ไขแล้ว
- แก้ปัญหาด้วยการ เลิกใช้ TweetMeme แล้วไปใช้ Tweet button ตัว Official ใช้ง่ายๆ แค่เอา code มาวางใน Single.php ในตำแหน่งที่ต้องการ
Leave a Reply