RSSフィードのデータ読込み遅延を解決する方法

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

WPホームページ研究所運営サポートチーム監修のオムスビ(@OMUSUVIcom)です。

ワードプレスは記事データと同時にRSSデータが生成される仕組みです。つまり記事を作成(または更新)するたびにRSSフィードが同時作成されていて裏側で配信ファイルが自動で作られています。本日はRSSフィードを読み込む際のデータ遅延をなくす方法についてご紹介させていただきます。下記で解説いたしますね。

RSSフィードのデータ読込み遅延を解決する方法

ワードプレスは「記事データとRSSフィードがリアルタイム連動」しています。ただ、ウィジェットでRSSフィードを読み込む場合に限ってはキャッシュのデータが残ってしまい12時間ずれるケースがあります。

状況によっては「RSSで取得した記事データをすぐ反映したい」といったシチュエーションも出てきますよね。また、RSSから読み取って記事を作成するまとめ(キュレーション)サイトを運営しているパターンもあるのでRSSフィードから取得した情報が最新状態でないとリアルタイムで更新内容を届けることはできません。

下記がキャッシュ設定の記述。ファイルは「wp-includes/rss.php」の712行目です。

// RSSキャッシュの設定
class RSSCache {
	var $BASE_CACHE;
	var $MAX_AGE	= 43200;
	var $ERROR 		= '';

	function __construct( $base = '', $age = '' ) {
		$this->BASE_CACHE = WP_CONTENT_DIR . '/cache';
		if ( $base ) {
			$this->BASE_CACHE = $base;
		}
		if ( $age ) {
			$this->MAX_AGE = $age;
		}

	}

	public function RSSCache( $base = '', $age = '' ) {
		self::__construct( $base, $age );
	}

	function set ($url, $rss) {
		$cache_option = 'rss_' . $this->file_name( $url );

		set_transient($cache_option, $rss, $this->MAX_AGE);

		return $cache_option;
	}

	function get ($url) {
		$this->ERROR = "";
		$cache_option = 'rss_' . $this->file_name( $url );

		if ( ! $rss = get_transient( $cache_option ) ) {
			$this->debug(
				"Cache does not contain: $url (cache option: $cache_option)"
			);
			return 0;
		}

		return $rss;
	}

	function check_cache ( $url ) {
		$this->ERROR = "";
		$cache_option = 'rss_' . $this->file_name( $url );

		if ( get_transient($cache_option) ) {
			// object exists and is current
				return 'HIT';
		} else {
			// object does not exist
			return 'MISS';
		}
	}

	function serialize ( $rss ) {
		return serialize( $rss );
	}

	function unserialize ( $data ) {
		return unserialize( $data );
	}

	function file_name ($url) {
		return md5( $url );
	}

	function error ($errormsg, $lvl=E_USER_WARNING) {
		$this->ERROR = $errormsg;
		if ( MAGPIE_DEBUG ) {
			trigger_error( $errormsg, $lvl);
		}
		else {
			error_log( $errormsg, 0);
		}
	}
			function debug ($debugmsg, $lvl=E_USER_NOTICE) {
		if ( MAGPIE_DEBUG ) {
			$this->error("MagpieRSS [debug] $debugmsg", $lvl);
		}
	}
}

キャッシュ読込み遅延を防ぐためのプラグイン「WP RSS Feed Data Quick Refresh」は下記からダウンロードできますのでぜひお試しください。RSSの読込み遅延をなくしたい方へおすすめのプラグインです。

本記事が運営のご参考になれば幸いです。

最新式の無料プラグインを事前公開

WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
改良されたプラグインを確認する

ワードプレス専門家に丸投げする

WPホームページ研究所はワードプレスを中心としたブログ作成・ホームページ制作・オウンドメディア構築・プラグイン設定・調整など幅広いカスタマイズに対応しております。 記事の掲載情報だけでなくお好みの機能をいただければ専属スタッフが心を込めて真摯に対応させていただきます。お気軽にお問い合わせください。

お問い合わせの種類をお選びください(もっとも近い項目)

法人の場合は法人名とご担当者のお名前をご入力ください

返信時のご連絡に利用するメールアドレスをご入力ください

運営中のウェブサイトURLがあればご入力ください

お困りの内容があれば詳しい内容をお聞かせください