如何删除FETCH_FEED()写入的瞬变?

时间:2014-12-16 作者:Hans Spieß

我使用fetch\\u feed()缓存小部件中显示的外部rss源。如果小部件(或者更可能是整个插件)被删除/停用,我想手动删除所有相关的瞬态。

在里面class-feed.php $filename被传递给WP\\u Feed\\u Cache\\u Transient{}的构造函数,该构造函数显然处理fetch\\u Feed的Transient。我只是还没有弄清楚如何生成变量来将其与小部件存储在一起,以便以后执行删除操作。

1 个回复
最合适的回答,由SO网友:birgire 整理而成

此数据应在12 hours, 这是默认的提要缓存TTL。

所以这种房屋清理,对于WordPress transients API, 可能没有必要。

但让我们看看存储了什么样的数据。

如果您以当前问题的提要为例:

http://wordpress.stackexchange.com/feeds/question/172444
并通过以下方式获取:

$feed = fetch_feed( \'http://wordpress.stackexchange.com/feeds/question/172444\' );
然后在wp_options 表格:

  1. _transient_feed_mod_89d724e05be3479dcbee0fd481470c97
  2. _transient_timeout_feed_mod_89d724e05be3479dcbee0fd481470c97
  3. _transient_feed_89d724e05be3479dcbee0fd481470c97
  4. _transient_timeout_feed_89d724e05be3479dcbee0fd481
The_transient_timeout_* WordPress会自动添加行,以知道何时删除瞬态。

请注意:

echo $md5_of_feed_url = md5( \'http://wordpress.stackexchange.com/feeds/question/172444\' );
是的

89d724e05be3479dcbee0fd481470c97
因此,您需要知道提要url的md5,才能使用delete_transient() 功能:

delete_transient( \'feed_\'     . $md5_of_feed_url ); 
delete_transient( \'feed_mod_\' . $md5_of_feed_url ); 

结束

相关推荐

使用FETCH_FEED检索具有非常见标题的项目

我正在用fetch_feed, 然而,对于foreach, 正如文档所述,我可以使用get-> 方法,如何访问如下所示的对象: <SO:AppId>617422</SO:AppId> 那些: 在我的代码上生成错误。有什么想法吗?,提要如下所示: channel title link image title url item SO:AppId&#