goods and life +

「WordPress の RSSエラー」という考え方はすでに終わっていると思う

もうアフォかと (*゜▽゜*)♪

いままで RSS のエラーがでてなかったのに急に出た場合

もうね、WordPress の RSSエラーっていうより、どの場合でも原因はほぼ WordPress 以外のことなんじゃね?、たいていの場合 WordPress が悪いわけではない予感。

だいたいの場合、ぶっちゃけエラーが出た記事を書く直前に入れたプラグインそのものが原因か、なにかのプラグインのせいで functions.php の先頭に空行が生じたのが原因か、もしくは「記事の中に UTF-8 プロパーじゃないものが混じってる」のどれかだと思います。

・プラグインのインパーフェクション
・投稿記事記入時のコンタミ

よくあるパターンがこういうの、こういうエラーが出るやつ

RSS エラー: This XML document is invalid, likely due to invalid characters. XML error: Not well-formed (invalid token) at line 1, column 1

functions.php の先頭の空行を削除したら直ります、というかそれでたぶん直ってます。
でも RSS は サーバサイドでキャッシュされます。

functions.php の先頭の空行を削除しても、以前のものがキャッシュされていたら、そのキャッシュが切れるまでの期間はずっとエラーがでます。

 

で、先頭の空行を削除する方法とは別に、wp-includes/feed-rss2.phpwp-includes/feed-rss2-comments.php のファイルの先頭の < ?php の次の行に ob_end_clean(); を追加すると直る、という情報はけっこうみつかるんですけど、もしそれで直っていたとしても、以前のものがキャッシュされているままなら、同じくキャッシュが切れる時がくるまでずっとエラーがでます。
で直したら後は時間の問題。

 

そもそも表示されているアラートを見てもどこを直せばいいかがわからない場合
そんな時は、W3Cの RSSフィードバリデータや feedvalidator.org の RSSフィードバリデータを使えば手早くチェックできます。

このブログの場合だと、http://catchymood.com/goods_and_life_plus/feed と入れてチェックすると、エラーがある場合は、エラー構文とその箇所が表示され、どの場所がおかしいのかがわかるので、そこを直せば解決です。

W3CのRSSフィードバリデータ
http://validator.w3.org/feed/

feedvalidator.orgのRSSフィードバリデータ
http://feedvalidator.org/

でも、フィードバリデータで表示されたエラー箇所をじっくり見ても、「見た目何も間違いがない」という場合があったりします。

吐き出されてるものを見ても、何も間違いがなかったり。
でもプロパーな UTF-8 じゃない、とか言ってるし、てことは、それが紛れ込む余地のあるところ。
記事中に UTF-8 以外の文字がなぜかどこかに混じったのかもしれないと思って CotEditor に記事を全文コピペして UTF-8 で保存してみてもすんなり保存できちゃいますし、文字には問題は無い。
それをコピペで上書きして更新しても直らない。
そうなると厄介で、わけがわかんないから直しようがないじゃん?

 

わかったった!

…って思って探してたらあった!、これだこれこれ、助かりました。

北本日記
埼玉県北本市のまったり生活日記
RSSフィードエラー:原因と暫定対応
http://kitamoto-nikki.keystar.jp/2015/01/31/rss-feed-error/

原因は「制御文字の混入」
テキストやソースを人の眼でじっくり読んだところで見えないんだから見た目でわかんない。
てことでなぜか持っていた SublimeText を使ってみました。

やっぱりね、4行目にBS(Back Spaceのこと)なんかが入っちゃってます、これがまた SublimeText に記事全文コピペで張り付けなかったら目では見えてないから非常に厄介。

そもそも、どうしてここに制御文字を入れることができたのか?という謎。
というか、なんでこんなものがどうやって入っちゃってるのかその原因が思い当たらなくて、さっぱりわかんないのが厄介なところ。

原因がわかんないので、とりあえず BS を選択して削除する対症療法しかできない。
削除して記事を更新すれば治るはずなんですけど、ちょっと気持ち悪い。
でも制御文字を削除してから投稿ページにコピペしなおして更新、その後 RSSフィードバリデータで feed の URL をチェックすると合格できていました、結果オーライ。

[Valid RSS]

で、ブラウザ、WordPress のキャッシュ系プラグイン、それと inali の場合は Cloudflare のキャッシュもついでにパージ。
その後 feedburner、feedly、RSS でチェックしてみるとエラー表示が消え正常に表示されていて、数分後には自動的にツイッターにも送信されてました、めでたしめでたし。

…というお話だったのさ。

Sublime Text がなんだかわかんない人はこれが役立つかも
Sublime Text入門(1)
テキストエディター「Sublime Text」の導入
http://www.buildinsider.net/small/sublimetext/01

制御文字をトルだけでOK (*゜▽゜*)♪

お買いもの忘れはないですか?

コメントはこちらから

Return Top