如何阻止Wordpress返回缓存的RSS源?

时间:2014-03-19 11:15:51

标签: php wordpress rss

我正在从Wordpress网站上提取RSS源,而且似乎已经卡住通过我网站上的PHP检索缓存版本。

通过浏览器查看RSS网址会显示应显示的所有8个帖子,但不会显示我作为测试删除的帖子。

通过PHP从Feed输出原始数据(使用LastRSS),它省略了昨天创建但仍显示已删除帖子的帖子。

LastRSS使用fopen()获取Feed:

if ($f = @fopen($rss_url, 'r')) {
    $rss_content = '';
    while (!feof($f)) {
        $rss_content .= fgets($f, 4096);
    }
    fclose($f);
}

我没有使用Worpress或RSS feed,所以任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:1)

WordPress的内置RSS小部件非常棒,但有时它的更新频率不够高。

幸运的是,有一个相当简单的解决方案。只需将此代码添加到functions.php文件中:

add_filter( 'wp_feed_cache_transient_lifetime', 
   create_function('$a', 'return 600;') );

如您所见,我们正在使用WordPress'add_filter()函数,该函数接受过滤器挂钩,回调函数和(可选)优先级。 wp_feed_cache_transient_lifetime挂钩处理Feed的刷新率。我们正在使用PHP的create_function()函数动态创建回调函数。它是一行,以秒为单位返回刷新率。我们的刷新率设置为10分钟(600秒)。

根据需要以秒为单位设置值。

答案 1 :(得分:1)

目前看来,在2020年实现此目标的方法是使用以下代码:

function turn_off_feed_caching( $feed ) {
    $feed->enable_cache( false );
}
add_action( 'wp_feed_options', 'turn_off_feed_caching' );

但是,对我而言,实际上刷新了缓存的事情只是更改了Feed中的一篇文章。

我试图在插件的“全文”和“摘要”模式之间进行切换,并花了几个小时进行尝试,直到我才尝试编辑帖子,然后立刻就可以使用。

答案 2 :(得分:0)

@ bodi0的答案正确,但是该代码现已弃用。以下代码使用匿名函数来实现相同的结果:

add_filter('wp_feed_cache_transient_lifetime', function () {
 return 0;
});