WordPress2.8以降、SimplePieクラスが、RSSの出力を取り仕切っていますが、それ以前のMapieRSSも使うことが出来るようになっています。
SimplePieのスニペット
<?php include_once(ABSPATH . WPINC . '/feed.php'); $rss= fetch_feed('http://bueltge.de/feed/'); $rss_items= $rss->get_items( 0, $rss->get_item_quantity(5) ); if ( !$rss_items ) { echo 'no items'; } else { foreach ( $rss_items as $item ) { echo '<p><a href="' . $item->get_permalink() . '">' . $item->get_title() . '</a></p>'; } } ?>
標準では、キャッシュライフタイムは、WP_Feed_Cache_Transient()で12Hにセットされます。
キャシュ時間の変更は、以下のフックで可能です。
add_filter( 'wp_feed_cache_transient_lifetime', create_function( '$a', 'return 1800;' ) );
デバグ中にRSSをキャッシュさせたくないなら、
function do_not_cache_feeds(&$feed) { $feed->enable_cache(false); } if ( defined('WP_DEBUG') && WP_DEBUG ) add_action( 'wp_feed_options', 'do_not_cache_feeds' );
とすることが出来ます。
次に、MagpieRSSです。
<?php include_once(ABSPATH . WPINC . '/rss.php'); $rss= fetch_rss('http://bueltge.de/feed/'); $rss_items= array_slice($rss->items, 0, 5); if ( empty($rss_items) ) { echo 'no items'; } else { foreach ( $rss_items as $item ) { echo '<p><a href="' . $item['link'] . '">' . $item['title'] . '</a></p>'; } } ?>
wp-config.php
define('MAGPIE_CACHE_ON', 0); // deactivate cache define('MAGPIE_CACHE_AGE', 60*60) // Cache 1 hour in seconds
この記事は、http://wpengineer.com/1820/feed-cache-in-wordpress/(title)の優れたチュートリアルをメモしたものです。
他には、options tableの
_transient_timeout_feed_mod_ _transient_feed_mod_* for feed's last modification time _transient_timeout_feed_ _transient_feed_* for feed's content _transient_timeout_feed_* for feed's cache duration