読者です 読者をやめる 読者になる 読者になる

もっふもふの電子回路

備忘録的なあれ

wordpress rss feed 設定メモ

今までrssフィードをページに表示する際にはページのテンプレートに表示処理を書いて、
キャッシュの更新間隔等の設定は「wp-includes\feed.php」内のset_cache_durationを直接変更していた。

これではwordpressを更新した際に変更した設定がデフォルトに戻されるので、
今までは顧客納品時にwordpressの更新はしないでくださいなどと言っていた。
しかし普通に解決方法があったので懺悔がてらメモに記載。

今までやっていた記載。

テンプレートファイル

//WrodPressのfeed.phpの呼び出し
include_once ABSPATH . WPINC . '/feed.php';
// 目的のFeedを取得
$feed = fetch_feed('rssのurl');

//以下 $feed内のメンバ関数にて表示処理

wp-includes\feed.php

function fetch_feed( $url ) {
・
・
・
//$feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $url ) );
$feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 30 * MINUTE_IN_SECONDS, $url ) ); //更新間隔を30分ごとに変更
}

解決方法

テンプレートファイル

//WrodPressのfeed.phpの呼び出し
include_once ABSPATH . WPINC . '/feed.php';
// 目的のFeedを取得
$feed = fetch_feed('rssのurl');
$feed ->set_cache_duration(1800);
$feed ->init();

//以下 $feed内のメンバ関数にて表示処理

上記のように普通にインスタンスからset_cache_duration設定できたっぽい。知らなかった。
今まですごい頭悪いことしてたんだな。。。お客様今まで大変申し訳ございませんでした。

以上