当我指定超时值时,为什么WordPress创建两个具有相同名称的瞬变?

时间:2021-01-20 作者:joho

在处理超时的瞬态时,我似乎创建了两个瞬态,我不太明白为什么。查看上的源代码:https://developer.wordpress.org/reference/functions/set_transient/, 只有当wp\\u using\\u ext\\u object\\u cache()返回false时,才会出现这种情况。

我的电话是:

set_transient( \'mytransientprefix_key\', \'value\', 3600);
然后我更新相同的瞬态:

set_transient( \'mytransientprefix_key\', \'new_value\', 3600);
在wp\\U选项表中,我只剩下:

_transient_timeout_mytransientprefix_key (“值”)和one _transient_mytransientprefix_key (“new\\u value”)。

什么

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

为什么WordPress会创建两个瞬态:因为第一个瞬态timeout 在名称中,用于存储您为瞬态设置的过期时间(但存储的值是UNIX时间戳,而不仅仅是您传递的值,如3600) 以便WordPress知道何时删除您的临时用户。对于第二个,它存储传递给的实际瞬态值set_transient(), i、 e.第二个参数。

$key = \'mytransientprefix_key\';

set_transient( $key, \'value\', 3600 );
// That will create two options:
// _transient_timeout_mytransientprefix_key and
// _transient_mytransientprefix_key

var_dump(
    get_option( \'_transient_timeout_\' . $key ),
    get_option( \'_transient_\' . $key )
);
// Sample output: int(1611143902) string(5) "value"
所以“的值”;超时“;瞬态不应该是value — 尝试上面的代码,看看它是如何运行的?

相关推荐

Clear Transients

我已经为我的一个客户构建了一个自定义主题,我正在使用瞬态,以使站点运行更快。一周后,我在wp\\U选项中看到了大量瞬态记录(约360000条记录)。这使我怀疑瞬态不会从数据库中删除。如何删除该记录,以及如何删除?有什么好的教程吗?亲切的问候