トラブル:RSS Feedをうまく読み込んでくれない事態に陥った

コンサデコンサ本宅に記事を投稿した後、Twitter、Facebook、Google+に記事を投稿したことをお知らせする発言が投稿されていないことに気がついた。

Twitter、Facebookへの投稿はIFTTT、Google+への投稿はHootsuiteを使用して自動で投稿するように設定しているが、ともに動作していない。

IFTTTをのぞいてみると、エラーメッセージがでている。

IFTTT-error

でも原因がわからない。しかたがないので、再登録してみることにした(レシピを新規作成)。すると、FeedのURL自体を受け付けない。Feedが読めないといってくる。どうやら、wordpress側のRSS feedに問題がある可能性が高まった。

そこで、ネットをあちこち検索。

まず、Feedのエラーをチェックしてくれるサイトで、RSS feedを点検してみる。

w3c-feed-validation

いくつかのエラーが出たが、その中に、「文頭に変なスペースが存在している。」というエラーがあった。

これ、「XML パースエラー」と呼ばれるエラーのようだ。文頭に宣言文がなければいけないのに、何らかの要因でスペースが入ってしまい、Feedを読み込むプログラムが、Feedと認識できないエラーのこと。

このサイトの内容を参考にして、対応させてもらった。
対応方法は、以下のファイルの書き換え。

wp-includes/feed-rss2.php
wp-includes/feed-rss2-comments.php

二つのファイルの文頭にob_end_clean();を追加する。

 ↓

を追加。

これで、IFTTTのエラーが消えて、動作するようになった。