我正在从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,所以任何帮助都会受到赞赏。
答案 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;
});