今天突然有個網友留言說博客的Feed掛了,症狀如下:
Chrome直接打開訂閱頁顯示如下:
This page contains the following errors: error on line 1 at column 1: Document is empty Below is a rendering of the page up to the first error.
FeedDemon提示:此Feed包含錯誤。
添加後也沒什麼影響,能正常使用。
鮮果閱讀器也可閱讀,但沒有取得到最新的文章。
用IE試了下,顯示「文件頂層有無效內容。」
查看原始碼發現是能看到HTML格式解析後的內容,這說明WordPress的Feed輸出是沒有問題的,出問題的在於某個文件的格式。不過要找到是哪個文件出問題就比較難了。網路上給的解決方法大致上是這樣的:
檢測上、下是否有多餘的回車、換行符號
1、檢測wp-config.php 文件,查看PHP主體以外的程式碼有無回車符;
2、同上,檢測wp-rss2.php,wp-atom.php文件,如果最近沒修改過,可略過;
3、同上,檢測functions.php 文件;
4、注意feed是有快取的,在修改完成之後,發一篇文章,使WP程式重建feed,從而查看效果;
5、若仍然有錯,可以嘗試暫時關閉所有插件,更換主題等逐個排除。
把上述文件都修改了個遍,還是沒有頭緒。 。於是裝了個插件“Fix Rss Feeds”,啟用後修復一下就搞定了。而且修復之後把插件刪了也不會反彈~
研究了下這個插件,似乎只是修改了WordPress根目錄下的wp-blog-header.php,其實只需將這個文件改為:
<?php /** * Loads the WordPress environment and template. * * @package WordPress */ if ( !isset($wp_did_header) ) { $wp_did_header = true; ob_start(); //2010-09-18 gofunnow.com added, it will Fix rss feed error "Error on line 2: The processing instruction target matching "[xX][mM][lL]" is not allowed." while burn feed from feedburner.com <strong>require</strong>_once( dirname(__FILE__) . '/wp-load.php' ); ob_end_clean(); //2010-09-18 gofunnow.com added, it will Fix rss feed error "Error on line 2: The processing instruction target matching "[xX][mM][lL]" is not allowed." while burn feed from feedburner.com wp(); <strong>require</strong>_once( ABSPATH . WPINC . '/template-loader.php' ); } ?>
就可以了。
以上就介紹了利用Fix Rss Feeds外掛程式修復WordPress的Feed顯示錯誤,包括了require方面的內容,希望對PHP教程有興趣的朋友有所幫助。