WordPressのRSSフィードがエラーになって配信されなくなってしまったときに対処した方法まとめ
僕の1日はRSSで始まります。PITE.(@infoNumber333)です。
毎日好きなブログの記事が自動で届くなんてホントに素晴らしいサービスですよ、RSS。
そんな大好きなRSSの話なんですが、最近テーマをいじいじしていたら昨日から僕のブログのRSSフィードが配信されなくなっていました。
そのことに今日の朝気づいてフィードのURLを確認してみたところ、下の画像のようなエラー表示が。
wordpress error on line 3 at column 6: XML declaration allowed only at the start of the document
やっぱりエラー出ていたか…。
ちょっと小一時間調べてみたのですが、よくわからなかったのでTwitterのフォロワーさん達に助けを求めることに。
昨日からWordpressのfeedが出なくなってしまって、今調べてみたらこんなエラーが出ていたんですが、対処法がわかる人はいらっしゃいますでしょうか(´・ω・`)…? feed URL: http://t.co/UBgBqnus2J http://t.co/WHgF3aITAp
— Pite@Number333管理人 (@infoNumber333) September 9, 2013
すると数人のフォロワーさんが反応してくれて、ものの30分ほどで解決しました!
ホントありがとうございます…(感涙
For whatever reason, once in a long while WordPress will just break the RSS feed. Why? God only knows.
このように、参考にした記事にも書いてありましたがWordPressを使っていればRSSのトラブルは誰しも一度は経験することのようです。
きっと同じようにRSS関係でお困りの方、これから困る方はたくさんいらっしゃると思うので今回僕が教えていただき、実践した方法をこの記事にまとめておくことにします。
functions.phpに改行が含まれている。
@infoNumber333 ソースの先頭に空白行が入ってないですか?
— おゆきさん (@oyuki_sun) September 9, 2013
@infoNumber333 3行目の6カラムでエラーが起きてるよ、ドキュメントの最初でしかXMLデコレーションは許されていないんだ。 ふむ。。 http://t.co/vzFBIojtEw こんなこと?
— こっこ(おしゃれスーツ助平) (@cocco00) September 9, 2013
一番よくあるRSSエラーの原因が、functions.phpの中に空行が含まれているというものです。
空行があるかどうかを調べる方法は簡単で、自分のブログのソースコードを表示させてみて下さい。
もし空行が含まれている場合はこのようにソースの先頭に空行が含まれています。調べてみたら僕も空行が入ってました。
これは結構やってしまうミスなのでみなさんも一度自分のソースコードを見てみてください。これで解決する人は多いとのこと。
その後functions.phpを見直し空行を削除したのですが、僕の場合はまだRSSが直らなかったので、さらに作業を続行。
「ob_end_clean();」を追記
@infoNumber333 これ解決できた? 一応同じ症状だとこういう解決法があるよ。http://t.co/ora2R5WBuu
— ホシナカズキ(・e・) (@cazuki) September 9, 2013
安定のホシナさん。
funtions.phpやプラグインを見なおしてもまだRSSが直らないことはあるそうです。その場合に使われるのが「ob_end_clean();」を使う手法。
・WordPressのRSSエラー(XMLパースエラー)の対処法 – kngy.net
詳しくは上記の記事をご覧になって欲しいのですが簡単に説明すると、
wp-includes/feed-rss2.php
wp-includes/feed-rss2-comments.php
の二つのファイルの先頭に、
ob_end_clean();
を追記するだけというもの。これで解決する事例もあるとか。
しかし僕の場合まだ解決しなかったので、さらに続行…!
それでも直らなければ。
@infoNumber333 マジか。じゃあ、まったく同じ行でエラー返った人の解決記事。ただし英語。http://t.co/Vl0Q0J5WKH
— ホシナカズキ(・e・) (@cazuki) September 9, 2013
最終的に決定打となったのがこちら。
・Fix WordPress RSS Feed Error – Fix “Error On Line 2” | Piotr Krzyzek
海外のWordPressのブログの記事です。
英語ですが、詳しく丁寧に説明してくれているので手順は分かりやすいと思います。
内容は割愛しますが、この方法を使ったら僕の場合は解決しました。
もし使い方がわからなければ僕に直接質問を頂けると有難いです。
ブラウザのキャッシュに注意!
実は問題が解決されている場合でも、ブラウザのキャッシュが残っているとエラーコードが表示されたままになってしまいます。
キャッシュは必ず毎回クリアしてチェックするようにしましょう。
もしかしたらFeed burnerが原因かも?
ここまでの対処法を試してみても、それでも少し不安定だったのでRSS配信に使用しているFeed burnerが原因かも?と思い一度Feed burnerのプラグインを入れなおしてみたところ安定して機能してくれるようになりました。
Feed burnerうちも使ってるよ!という方は一度お試し下さい。
正直Feed burner自体が不安定なのと、いつサービスが終わるかわからないという危機感があるのでもう少ししたら別の配信方法に切り替えてみようかなと思ってたりします。
Pite(@infoNumber333)はこう思うよ。
最近ではTwitterやFacebookなどのSNSに推されがちですが、ブログを書く上で僕にとってRSSは必要不可欠な存在。これからも大切にしていきたいです。
よし!艦これするぞー!!