なぬっRSSが出力されない!「XML パースエラー:実体の初めにXMLまたはテキスト…」を直すぞ!
新着エントリーをせっせと配信してくれるブログには欠かせないRSS。このブログにも勿論実装しているんですが、先日確認してみるとなんと上の画像(FirefoxのRSSエラー画面)が表示されて見れなくなっていたのです。最後にRSSの表示を確認したのが3ヶ月程前だったのでその期間RSSが見れなくなっていたのかと思うとショックで急いで修正をしました。今回はその時の手順とかを忘備録として残しておきたいと思います。
ちなみにIEだとこんな感じで表示される。
RSSエラーの原因一覧
ソースを見てもよくわからなかったので早速Google先生を召喚。そしてこちらのページを発見。【WordPress】XMLパースエラー:実体の初めにXMLまたはテキスト宣言がありませんの解決法
上記ページよりエラーの一覧を抜粋してみるとこんな感じ。原因に心当たりが無い時は1番から順に試してみる。もちろんバックアップは忘れずに!
1.インストールしているプラグインが原因かも → (まずはプラグインを全て無効化してみる。全部無効化して確認)
2.function.phpの最初や最後の空白を削除 → (無駄な空行が影響しているかも。削除して確認.。1番の原因だそうです)
3.wp-config.phpの最初や最後の空白を削除 → (無駄な空行が影響しているかも。削除して確認)
4.wp-rss2.phpとwp-atom.phpとindex.phpのファイルについても無駄な空白がないか確認
5.最終手段。feed-rss2.phpとfeed-rss2-comments.phpの2行目に魔法の一文を追加(下で紹介)
よしっ試すべ!
私も1番から順に4番まで試してみたんですがこれが全くの効果なし。同じ様にRSSエラーで困っている方の多くが2番目で直ることが多いとの事だったんですが残念です!最後の頼みの5番目を試してみます。
まずはFTPソフトなどでwp-includes/にアクセスし、feed-rss2.phpとfeed-rss2-comments.phpをダウンロード。
ファイルを開き、2行目に「ob_end_clean();」と追加します。
2つとも追加したらUPロードして確認します。
見事成功!
いや~結構時間かかりました。まさか最後の手段まで試すとは思いもしなかったですが直って何よりです。