wordpressのRSSフィード取得できなくてハマった話

wordpressのRSSフィード取得できなくてハマった話

こんにちは。
タイトル通りですが、微妙にハマってしまった話です。。
まず、話の発端はこうです。
①あるクライアントが運営するブログを、アメブロからwordpressに引っ越すことになった。(どちらも更新していたため、両方とも記事が存在する状態)
②アメブロからwordpressへ記事の移行作業を行う。※この話はざっくりとですが、以前の記事に書いています。
③引っ越しに伴い、クライアントのホームページにてRSSで取得、表示していたブログ記事の取得元を変更。
④移行した記事がRSSで取得できない。。。(もともとwordpressに存在した記事は取得できる。)

RSS取得ロジックは、以下の通りです。

まず記事の移行は間違いなくできている。
なので、キャプチャの4行目にて指定しているURLが間違っていなければ取得できるはず。
というわけで指定しているURLを直接ブラウザで表示して見ると、想定通りにフィードは取得されている。

???

記事の移行の仕方の問題なのか?
wordpressのfetch_feedの仕様的に移行した記事は取得できないのか?
そもそもロジックに誤りがあるのか?

とあれこれ考えながら調べたりソースを書き換えながら試していたところ、
wordpressの日本語リファレンスでfetch_feed関数のページに以下のような記述が。
「WordPress の本体に含まれているオープンソースの SimplePie を使用しており、キャッシュを自動で生成する機能も用意されています。」
「fetch_feed キャッシュは、デフォルトでは12時間です。 wp_feed_cache_transient_lifetime /enフィルタを介して、時間間隔を変更することによって、これを変更することができます。」

キャッシュ。
しかもデフォルトで12時間。

これだと思い、時間間隔を変更する方法を調べて
ソースを書き換えてみると、無事想定通りにフィードが取得できました。
書き換えた部分は以下の通り。

function.phpに書くのがセオリーかもしれませんが、
なるべく影響を最小限にしたかったので、fetch_feedする直前で時間を変更して処理直後に元に戻すようにしました。

これを解決するのに1時間強。
結果的に記事の移行をしたこと自体は何の関係も無かったのですが、
そこに気が取られがちだったのがいけなかったですね。
滅多に無い作業のような気はしますが、これで次からすぐに対処できそうです。