WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

RSSフィードブロックの更新時間(キャッシュ時間)を変更する方法

公開日:2022(令和4)年3月16日/最終更新日:

WordPressのカスタマイズ情報



【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

WordPressでは、ブロックエディタの「RSS」ブロックなどを使って、外部サイトのRSSフィードを受信して一覧表示する際には、12時間ごとに更新される(12時間は再取得しない)ようになっています(これをフィードキャッシュと言います)。

これは、「RSS」ブロックなどが挿入されたページを表示するたびにフィードを受信してリストにして表示することで、そのページの処理やフィード元サイトへの負荷を軽減する措置として標準で設定されています。

ただサイトやページによっては、常に最新情報を受信して表示したいというケースもあると思います。

そんな時は、以下のコードをテーマのfunctions.phpへ追加して、時間を指定すれば、フィードキャッシュの時間を任意に変更することができます。

コード中の7200は7200秒(120分=2時間)という意味ですので、用途に応じて任意の数字へ変更してください

/********** RSSフィードのキャッシュ時間変更 **********/
 /*** rerurnの値を変更することで時間変更可能(秒で指定)***/
 function ha_feedcachetime( $seconds ) {
    return 7200;
 }
 add_filter('wp_feed_cache_transient_lifetime','ha_feedcachetime');
 $feed = fetch_feed( $feed_url );
 remove_filter('wp_feed_cache_transient_lifetime','ha_feedcachetime');

また、完全にオンデマンド(キャッシュなし)にする場合は以下のコードを同じくテーマのfunctions.phpへ追加するだけです。

/***** フィードのキャッシュをオフにする *****/
function ha_turn_off_feed_caching($feed){
	$feed-> enable_cache(false);
}
add_action('wp_feed_options','ha_turn_off_feed_caching');

いずれの方法を使う場合でも、ページに複数のフィード受信リストが存在したり、複数サイトのフィードをまとめて表示したりする際には、サーバにはそれなりの負荷がかかり、ページの表示速度が低下したりすることがありますから、よくチェックして使用するようにしてください。

参考記事(WordPressコーデックス)