แก้ปัญหาโหลดลิ้ง RSS ไม่ขึ้นใน WordPress

สวัสดีครับ เมื่อประมาณ 2-3 เดือนที่แล้ว ผมพบว่าลิ้ง RSS ของผมที่ได้ลิ้งไปที่บทความของเวบเพื่อนบ้านชาวญี่ปุ่นของผม อยู่ดีๆมันก็ล่มไปซะอย่างนั้น วันดีคืนดีก็กลับมา โดยเฉพาะเวลาที่ผมส่งเมลไปถึงผู้ดูแลระบบและตัวเจ้าของ feed ตัวนี้ ผมลองลง WordPress ใหม่ก็ไม่หาย และทางโฮสก็บอกว่าเขาไม่มีปัญหาด้วยและเจ้าของ feed ก็เช่นกัน แล้วมันเป็นที่ใครล่ะ โอเคครับ เรามาดูกันก่อนว่าอาการของมันเป็นอย่างไร

ถ้าใครใช้ธีม K2 ก็จะออกมาอย่างที่เห็นนี้แหละ ถ้าธีมอื่นก็จะขึ้นมาว่า feed มีปัญหาอะไรแบบนี้และหลังจากผมเสียเวลานั่งหาในบอร์ดของทาง WordPress เองและใน Google ก็ค้นพบทั้งผู้มีอาการเดียวกันกับผม และวิธีที่น่าจะแก้ไขได้

http://wordpress.org/support/topic/120549

สาเหตุที่เขาบอกคือน่าจะเป็นที่โฮสต์เปลี่ยนเวอร์ชั่น PHP จาก 4 เป็น 5 เลยมีปัญหากับโคด วิธีที่เขาบอกคือให้เราหาบรรทัดในไฟล์ rss.php ที่มีข้อความดังที่เขาบอก แล้วแก้ตามนั้นก็จะหาย โอเคครับผมก็แก้ แล้วมันก็เป็นดังนี้ครับ

เหมือนเดิม …….

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

http://adambrown.info/b/widgets/2007/08/20/an-error-has-occured-the-feed-is-probably-down/#more-30

เหมือนสววรค์มาโปรดผมเพราะนี้ผมแก้แบบไม่รู้อะไรมา 5 ชม.แล้ว โอเคครับผมรีบสรุปดีกว่าเดี๋ยวจะเบื่อกัน

วิธีแก้มีดังนี้ครับ คือเราต้องไปโหลด Magpie RSS มาอัพแทน rss.php ของเราแทนครับ เพื่อนๆอาจจะสงสัยว่านี้มันไฟล์ตัวมันเป็นตัวโคดของ WordPress จะมาเอาโปรแกรมอื่นมาแทนได้อย่างไร ก็ต้องขอบอกก่อนเลยว่า WordPress นี้เขาใช้ตัว Magpie RSS นี้แหละเป็นตัวจัดการ RSS ของเขาแล้วเขาก็รีแบรนด์มันใหม่เป็น rss.php นั้นเอง

ขั้นตอนก็

  1. ไปดาวน์โหลดตัว Magpie RSS ของผมใช้เวอร์ชั่น 0.7.2
  2. แตกไฟล์ให้เรียบร้อยแล้ว ก็เปิดไฟล์ชื่อ rss_fetch.inc แล้วก็แก้โคดตรง

    require_once( MAGPIE_EXTLIB . ‘Snoopy.class.inc’);

    เป็น

    require_once( dirname(__FILE__) . ‘/class-snoopy.php’);

    ส่วนใครที่ลิ้งฟีดที่เป็นภาษานอกเหนือจากภาษาอังกฤษก็แก้ตรงนี้อีกที่ครับ

    define(‘MAGPIE_OUTPUT_ENCODING’, ‘ISO-8859-1’);

    เป็น

    define(‘MAGPIE_OUTPUT_ENCODING’, ‘UTF-8’);

    ไม่งั้นเดี๋ยวอ่านไทยไม่ออก

  3. จากนั้นก็ทำการรีแบรนด์ไฟล์ rss_fetch.inc ให้เป็น rss.php
  4. อัพโหลดไฟล์ rss.php และไฟล์ rss_cache.inc, rss_parse.inc และ rss_utils.inc ไปไว้ที่โฟลเดอร์ wp-include
  5. ลองเช็คดูว่าใช้ได้ไหม อาจจะต้องรอเวลาให้มันไปดึงข้อมูลจาก RSS ที่เราป้อนลงไปก่อน

หลังจากใช้แล้วก็พบว่าไม่มีปัญหา หายเป็นปริบทิ้ง แต่มีข้อเสียนิดหน่อยคือเวบจะโหลดช้าขึ้นเพราะต้องใช้เวลาในการดึง RSS นานขึ้น ใครเอาไปใช้แล้วได้ผลอย่างไรก็เอาคุยกันมั้งนะครับ

Updated 2008 7 16

พอดีผมอัพเกรด WordPress เป็น 2.6 ซึ่งมันก็ยังไม่ได้แก้ไขเรื่องนี้เหมือนเดิม พอดีต้องทำไฟล์ rss.php มาลงใหม่ เลยพบว่าไอที่เขียนมามันผิดไปหน่อยนึงครับ แก้ไขแล้วนะครับ แล้วก็ใครที่ขี้เกียจแก้ผมอัพโหลดไฟล์ rss.php ไว้แล้ว เชิญโหลดกันตามสะดวก


3 thoughts on “แก้ปัญหาโหลดลิ้ง RSS ไม่ขึ้นใน WordPress

  1. gootooyoo

    ครับปัญหาคือตัวคำสั่งครับ เนื่องจากการรันคำสั่งที่ไม่รองรับ ภาษา php 5+

    Reply

Leave a Reply to gootooyooCancel reply