แก้ปัญหา WordPress แสดงเนื้อหาได้ไม่เกิน 6,000 ตัวอักษร

, , Leave a comment

     

ปัญหา WordPress แสดงเนื้อหาได้ไม่เกิน 6,000 ตัวอักษร เกิดกับบล็อกผมมานานแล้ว แต่พยายามเลี่ยงปัญหามากกว่าแก้ปัญหามานานเช่นกัน เพราะเข้าใจว่ามันเป็นข้อจำกัดของ WordPress เอง

ปัญหาที่ว่าคือ เมื่อเราเขียนบล็อกที่มีความยาวมากๆ(>6,000 ตัว) เนื้อหาจะไม่โชว์เลย แต่ข้อมูลไม่หายนะ แค่ไม่แสดงเนื้อหาหน้าเว็บ ผมเลี่ยงปัญหาด้วยการ ตัดเนื้อหาออกบ้าง หรือแยกเป็นตอนย่อย วันนี้เลยลองแก้ปัญหาดูว่ามันเกิดจากอะไรกันแน่ มาดู log file ของการแก้ปัญหานี้กัน บันทึกไว้เผื่อมีประโยชน์กับคนอื่น ได้เรียนรู้ระหว่างทางเยอะเหมือนกันนะ

ใครขี้เกียจอ่าน อยากรู้ว่าต้นเหตุเป็นเพราะอะไร เลือนไปอ่านข้อสุดท้ายได้เลย

  1. อันดับแรกลองตรวจดูว่า โพสที่มันไม่แสดงนั้นมีตัวอักษรอยู่เท่าไหร่ เครื่องมือตรวสอบที่ง่ายมากๆ และใกล้ตัวสุด คือ twitter นี้เอง เข้าไปก็อบปี้ code จาก หน้า html แล้วว่างใน ช่อง tweet แล้ว +140 ก็ได้จำนวนตัวอักษรที่แท้จริงแล้ว
    ใช้ twitter นับตัวอักษร

    ตอนนี้ก็พอรู้จำนวนตัวอักษรคร่าวๆแล้ว ว่าจำนวนเท่าไหร่ที่มันไม่แสดงผลหน้าเว็บ

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

Leave a Reply