สวัสดีครับ เมื่อประมาณ 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 นั้นเอง
ขั้นตอนก็
- ไปดาวน์โหลดตัว Magpie RSS ของผมใช้เวอร์ชั่น 0.7.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’);
ไม่งั้นเดี๋ยวอ่านไทยไม่ออก
- จากนั้นก็ทำการรีแบรนด์ไฟล์ rss_fetch.inc ให้เป็น rss.php
- อัพโหลดไฟล์ rss.php และไฟล์ rss_cache.inc, rss_parse.inc และ rss_utils.inc ไปไว้ที่โฟลเดอร์ wp-include
- ลองเช็คดูว่าใช้ได้ไหม อาจจะต้องรอเวลาให้มันไปดึงข้อมูลจาก RSS ที่เราป้อนลงไปก่อน
หลังจากใช้แล้วก็พบว่าไม่มีปัญหา หายเป็นปริบทิ้ง แต่มีข้อเสียนิดหน่อยคือเวบจะโหลดช้าขึ้นเพราะต้องใช้เวลาในการดึง RSS นานขึ้น ใครเอาไปใช้แล้วได้ผลอย่างไรก็เอาคุยกันมั้งนะครับ
Updated 2008 7 16
พอดีผมอัพเกรด WordPress เป็น 2.6 ซึ่งมันก็ยังไม่ได้แก้ไขเรื่องนี้เหมือนเดิม พอดีต้องทำไฟล์ rss.php มาลงใหม่ เลยพบว่าไอที่เขียนมามันผิดไปหน่อยนึงครับ แก้ไขแล้วนะครับ แล้วก็ใครที่ขี้เกียจแก้ผมอัพโหลดไฟล์ rss.php ไว้แล้ว เชิญโหลดกันตามสะดวก
แจ่มครับ ขอบคุณที่แชร์ความรู้ ^^
ครับปัญหาคือตัวคำสั่งครับ เนื่องจากการรันคำสั่งที่ไม่รองรับ ภาษา php 5+
สุดยอดครับ