RSSフィードを即時反映させる(時差をなくす)方法

WordPressのRSSフィードを即時反映させる(時差をなくす)方法をご紹介します。他サイト・ブログの更新を瞬時に自分のブログにも反映させることができます。

他サイト・ブログの更新を自分のサイトに取り込む際に便利な機能、RSSフィード。
しかし即時性に乏しく、半日経過しないと自サイトに反映されないことも・・・。

この記事では、「RSSフィードを即時反映したい!」というお悩みを解決します。

目次

RSSとは?

この記事を見ている時点で、すでにRSSについてある程度知識があるかと思います。
が、念のためここで簡単にRSSについて記載しておきます。

細かいことは置いといて、ざっくりRSSとは?

(Rich Site Summary、Really Simple Syndication)の略。

Webサイトの最新情報を入手するための機能です。
RSSフィードを提供しているサイトに対してRSSリーダーを使うと、投稿があるたびに通知(概要か投稿全文かは提供側の設定による)が届きます。

速報性の高いブログやニュース記事などで提供している機能です。

RSSの即時更新対応

本題である、ワードプレスで他サイトのRSSを自分のサイトに即時反映する方法をご紹介します。

RSS更新は、配信元(他サイト)サーバーにも、取得先(自サイト)のサーバーにも負担がかかっています。
つまり、大量のRSSフィード受信があると自他共にサーバーが高負荷状態になりかねません。
大量更新の可能性がある場合、定時更新の方が良い場合もあります。(後述)

デフォルトでは12時間更新

ワードプレスでは、他サイトのRSSフィードを12時間ごとに更新しています。
つまり自サイトが更新されるには、最大12時間かかります。

またデフォルトでは、更新時にRSSの内容をキャッシュしておき、次の更新(12時間後)まではキャッシュを表示しているようです。
今回は、キャッシュしない設定にすることで、都度更新させる実装方針とします。

functions.phpに2行追加するだけ

ワードプレスのどのテーマにも、「functions.php」というファイルがあるはずです。
RSSの即時更新は、functions.phpに以下2行を追加するだけです。

function ha_turn_off_feed_caching($feed){ $feed-> enable_cache(false); }
add_action('wp_feed_options','ha_turn_off_feed_caching');

RSSの定期更新対応

先述の通り、RSSの即時更新はサーバー負荷が高い傾向にあります。
そのため、あまりお勧めできる方法ではありません。

デフォルトで12時間のRSSキャッシュ保持時間を短縮することで、RSSの更新頻度を上げる定期更新の方法もご紹介しておきます。

add_filter( 'wp_feed_cache_transient_lifetime', function($s){return 7200;} );

上記の7200という数値は2時間(7200秒)の場合の例で、更新頻度を秒数で指定しています。
この部分を更新したい頻度(単位は秒)で各自置き換えてください。

まとめに替えて

通常のサイトやブログでは、外部サイトの更新を即時反映する必要性は薄いため、そもそもデフォルトの12時間から変更する必要はありません。

どうしても即時性が必要かどうかを再考したえで、更新頻度を変更しましょう!

シェア大歓迎!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次