fetch_feed()によるRSS受信で即時反映されない問題の対策
現象
fetch_feed(‘https://sample.com/’)によるRSSフィード受信では、キャッシュによって遅延が発生します。デフォルトでは12時間です。
RSSの変更をリアルタイムで反映させたい場合は以下のような対策で解決できます。
対策
下記のコードを function.php に記述してください。
1 2 3 4 |
function fetch_feed_no_cache(&$feed) { $feed->enable_cache(false); } add_action( 'wp_feed_options', 'fetch_feed_no_cache' ); |
または
1 2 3 4 5 |
function fetch_feed_cache_1s( $seconds ) { return 1; } add_filter( 'wp_feed_cache_transient_lifetime' , 'fetch_feed_cache_1s' ); |
キャッシュは受信側に存在
複数のWordPressサイトが存在する中で、その中の一つのサイトの情報を他のサイトでリアルタイムで表示させるという課題において、キャッシュは発信側に存在するものとばかり思い込んでその改善だけに注力し、受信側の対策を考えていなかったために思いっきりはまってしまったときの反省を込めて投稿するものです。キャッシュは受信側にあります。
弊社サイトご案内
弊社ではデザイン会社様やウェブサイト制作会社様との提携・協業を随時お願いしております。