テーマを変更した際に色んなページをチェックしていたら、RSSフィードで以下のようなエラーが表示されていました。
This page contains the following errors: error on line 148 at column 324: Input is not proper UTF-8, indicate encoding ! Bytes: 0x08 0xE3 0x81 0xA7 Below is a rendering of the page up to the first error.
W3C Feed Validation ServiceでフィードのURLをチェックしてみると、ある記事の内容が「XML parsing error」となっていました。XML parsing errorは構文エラーのことです。
line 126, column 314: XML parsing error: <unknown>:126:314: not well-formed (invalid token)
kngy.netさんの情報を参考に、feed-rss2.phpとfeed-rss2-comments.phpを変更してみたところ、とりあえずエラーは出なくなりました。
- wp-includes/feed-rss2.php
- wp-includes/feed-rss2-comments.php
上記ファイルの2行目にob_end_cleanを追加します。
<?php ob_end_clean();
こんな感じでob_end_cleanを追加すると、エラーは解消されます。
序盤のiframeを消したら改善
この記事を書いている間に、WordPressをアップデートしたらまた同様の現象が出ました。で、上記2ファイルにob_end_cleanを追加してみたけど、現象は改善しませんでした。
該当記事では、序盤にiframeが埋め込まれていて、他の記事との違いはコレだ!と思い、iframeを削除してみました。すると、エラーは解消されたので、iframeで出力されるソースに原因があったと思われます。
あとがき
feed-rss2.phpとfeed-rss2-comments.phpにob_end_cleanを追加しても現象が改善しない場合は、エラーの原因となっている記事にiframeが入っていないかチェックしてみてください。
どうしても改善しない場合は、該当記事がフィードからなくなるまで、新規記事を追加した方が手っ取り早いと思います。これが一番の解決策かもしれませんね。
ちなみにエラーは出ていても、RSSリーダーでは正常にフィードは流れてきて、内容もちゃんと読むことができました。