是什么原因导致暂态TO将状态更改为“未过期”?

时间:2015-12-02 作者:gdaniel

我注意到,我的网站上不时会出现一些过渡,从有到期日期到“不到期”。我注意到这发生在一些插件(如重力表单)上,但也发生在我创建的瞬态上。有什么想法吗?

UPDATE:我不知道重力是如何形成的,如何设定和恢复它们的瞬变过程,但我只是使用了法典中的例子

//Set transient name based on post tags being used
$transient = \'rest-posts-\' . md5(serialize($tags));
if (false === ($data = get_transient($transient))) {
    //Run query here and then set transient
    set_transient($transient, $data,24 * HOUR_IN_SECONDS);
}
这很有效。。。也就是说,如果没有有效的瞬态,那么它将创建一个。然而,我时不时地看到数据没有更新,所以我检查了所有的瞬态,并注意到一些状态更改为“未过期”。一旦当前瞬态设置为“未过期”,则不会创建新瞬态。我正在使用一个瞬态插件来管理所有瞬态。因此,一旦我删除了状态为“未过期”的瞬态,那么就可以创建新的瞬态。

1 个回复
SO网友:Rarst

如果未提供过期时间,瞬态不会过期。请注意,如果为时间提供零值,可能会无意中导致此问题。

您应该知道,这仍然不能保证transient保持生存。这是不应该依赖的。

作为核心实现细节,它将在数据库版本升级时删除所有数据库瞬态。这是在返回时实现的,以解决数据库可能被大量旧瞬态阻塞的问题。

相关推荐

Transient api Caches confused

此代码适用于第1页<?php $paged1 = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; $recent1 = get_transient( \'recent1\' ); if ( false === $recent1) { $recent1 = new WP_Query