サポート » 使い方全般 » RSSフィードのキャッシュの時間を短く変更したい….

  • 解決済 ForestRiver

    (@forestriver)


    RSSフィードのキャッシュの時間を短く変更したいのですがうまくいきません。
    class-feed.phpのclass WP_Feed_Cache_Transient内の$lifetimeを変更すれば
    いいみたいなのですが、class-feed.php内での書き換えだと、wordpressの更新時に
    書き換わってしまうようなのでfunctions.php内で値を変更したいのです。
    PHPの知識があまりなく、上手に呼び出せません。

    ご指導のほどよろしくお願いできないでしょうか?

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    wp_feed_cache_transient_lifetime フィルターで変更が可能です。

    Plugin API/Filter Reference/wp feed cache transient lifetime

    上記ページのExample は、キャッシュの時間を2時間にしている例です。
    wp_feed_cache_transient_lifetime を利用した場合、全てのRSSのキャッシュ時間に影響してしまうため、基本的に対応させたいRSSの取得の前にadd_filterを行い、取得後は、remove_filterで解除しておくのは基本作法だと思って下さい。

    ご返答ありがとうございます。
    APIがあるのですね。

    <!-- RSSwidgetここから --><?php
    function return_1600( $seconds ) {
      // change the default feed cache recreation period to 30min
      return 1600;
    }
    add_filter( 'wp_feed_cache_transient_lifetime' , 'return_1600' );
    dynamic_sidebar('Footer Widget');//widget name
    //$feed = fetch_feed( $feed_url );
    remove_filter( 'wp_feed_cache_transient_lifetime' , 'return_1600' );
    ?><!-- RSSwidgetここまで -->

    ウィジェットで表示しているのですが、これだけでいいのでしょうか?

    ありがとうございます。詳しいことはわからなかったですが、
    vardumpで中身を確認したらちゃんと変更できてるようでした。
    記事も更新されてます。

    理解はできてないですが、ありがとうございます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「RSSフィードのキャッシュの時間を短く変更したい….」には新たに返信することはできません。