<?php
/*
Plugin Name: Change Feed Cache Lifetime
Plugin URI: http://ja.forums.wordpress.org/topic/2250
Author: mizube
Author URI: http://ja.forums.wordpress.org/profile/419438
Version: 1.0
Description: フィードのキャッシュ間隔を変更。
*/
if ( !defined( 'MY_FEED_CACHE_LIFETIME' ) )
define( 'MY_FEED_CACHE_LIFETIME', 1 ); // hour
function change_feed_cache_lifetime( $default=43200 ) {
if ( !absint( MY_FEED_CACHE_LIFETIME ) ) {
$lifetime = $default;
} else {
$lifetime = MY_FEED_CACHE_LIFETIME * 3600;
}
return $lifetime;
}
if ( !is_admin() )
add_filter( 'wp_feed_cache_transient_lifetime', 'change_feed_cache_lifetime' );
?>
- 適当な名前の PHP ファイルを作成 (ex. change-feed-cache-lifetime.php)
- そのファイルを開き、上記のコードを貼り付け、 UTF-8 (BOM なし) で保存
- プラグインとして WordPress のプラグイン用ディレクトリ (ex. /wordpress/wp-content/plugins/ ) 以下へアップロード (インストール)
- Change Feed Cache Lifetime プラグインがプラグイン管理ページの一覧に追加されているので、これを有効化
動作確認していませんが、以上でキャッシュ間隔を 1 時間に変更できるかと思います。
ただし、最低でも「すべての RSS ウィジェット」についてこのキャッシュ間隔が適用されますので、ご留意ください。
この問題を解決するために一番良いのはより適切なウィジェットを探して利用すること (特定のカテゴリーやタグなど、任意の条件で最新の投稿を表示でき、 RSS フィードへのリンクが付くもの――ありそうなのでさくっと探してみた範囲では、見つかりませんでしたけど) で、第二に、そういったウィジェットを自作すること、それも難しければ第三は目的にあったテンプレートを作成し sidebar.php に追加することです。 RSS ウィジェットで最新の投稿を表示させるというやり方は、第四番目 (あるいはそれ以下) のあまりオススメできない解決方法だと考えてください。
ウィジェットについてはちょっと高度になるのでコードの提示はしかねますが、追加するテンプレートの作成くらいはお手伝い出来ますよ。