
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してお試しくださいませ。
→ 改良されたプラグインを確認する