Live for Today

スポーツ、時事問題、IT、芸能等のホットな話題について綴ります。

*

WordPressでRSSフィードがエラーとなった時の対処方法

      2015/10/02

rssフィード

何気なくサイドバーのRSSボタンをクリックすると以下のようなエラーメッセージが表示され、正しく配信されていないことに。

rsserromessage

トライ&エラーで解決に要した時間は約3時間。。
以下にエラーの対処方法をご紹介します。


RSSのエラーを解決する方法

なお、以下のそれぞれの方法を実行した後は、必ずブラウザのキャッシュを削除して確認を行う必要があります。キャッシュが残っていると、エラーが解消されてもエラーメッセージが表示されることがあります。

①functions.phpに空行や全角スペースがないか確認をする。

ダッシュボード>外観>テーマの編集より「functions.php」にアクセスし、空行や全角スペースがないか確認をしましょう。特に1行目や2行目、最後の行に空行が入っているケースが多いです。空行または、全角スペースがあった場合は削除して、確認してみましょう。

 

②wp-includesファイルにあるfeed-rss2.phpとfeed-rss2-comments.phpに「ob_end_clean();」を追記

rss

私はロリポップを使っているので、ロリポップのFTPにアクセスし、wp-includesファイルにある「feed-rss2.php」と「feed-rss2-comments.php」の2行目に以下を追記します。

ob_end_clean();

「ob_end_clean()」は出力用バッファをクリア(消去)し、出力のバッファリングをオフにします。多くの方がこれまでの2つの方法で解決するようですが、私の場合は解決に至らず。

 

③WordPressにインストールしたプラグインに問題がないか確認

プラグインによってはRSSエラーを起こしてしまうものもあるようです。プラグインをそれぞれ停止して確認をしてみましょう。

私の場合は新たしいプラグインから順に数個停止して調べてみたのですが、解消されず。プラグインは20個ほど入れているので全ては確認せず、次の解決策を探ることに。

④W3C Feed Validation Serviceで確認→エラー箇所を修正する

W3C Feed Validation Serviceにアクセスし、検索ボックスに自分のブログのURLを入力します。

rss

すると、私の場合、

Sorry This feed does not validate.line87, column 60 XML〜

とのエラー表示。エラーがある行まで下にスクロールすると以下のように黄色でエラー箇所がハイライトされています。

rss

次に、WordPressのダッシュボード>投稿一覧より該当記事を表示し、SublimeTextにコピペします。

すると、文の中に「BS」の文字が。ちなみに、この「BS」の文字はWordPressの投稿画面では表示されていません。「BS」文字の周辺の日本語を変更して更新。

※Sublime Textは高機能なエディターです。お試し期間(期限なし)は無料なのでオススメです!rss

 

再度W3C Feed Validation ServiceにアクセスしてブログのURLを入力、CheckボタンをクリックするとCongratulations!との表記へ。エラーは解消されたようです。rss
次にキャッシュを削除しRSSボタンをクリックするとようやく正しく配信されるようになりました。

エラーの原因である制御文字の「BS」とは何?

今回のエラーの原因はWordPressで投稿する際に、制御文字の「BS」が混入してしまったためでした。この制御文字とは

文字コードなどで規定された文字のうち、通信制御や周辺機器の制御などに用いる特殊な文字のこと。(IT用語辞典

で通常目で確認することはできないようです。

今回は私はSublimeTextを使用していたため、「BS」の文字を確認することができ、あれおかしいな?と気づくことができました。なおこの「BS」の意味ですが、「1文字後退 (Back Space)」とのこと。

なんとか解決に至ってよかったです。

 - Web・IT