瞬态不像wp_cron
作业,因为在设定的时间过后,它们不会更新自己。尝试访问数据时,瞬态将更新。如果您确实需要大约每小时更新一次,则需要使用wp_cron
, 虽然在实践中,这可能并不重要,您可以使用wp_cron
如果需要,请执行更新瞬态的作业。
但是要回答这个问题,当你跑步的时候get_transient
要检查瞬态值,它将返回false
如果"the transient does not exist, does not have a value, or has expired", 但你不知道是哪个get_transient
还运行delete_option
if the timeout has expired. 我通过设置一个60秒的超时测试,并检查数据库本身的瞬态,验证了瞬态实际上已从数据库中删除。
在缓存方面,瞬态确实比普通选项有优势。
同样值得注意的是,缓存插件本身会加速瞬态,而正常选项则不然。例如,一个memcached插件可以让WordPress将瞬时值存储在快速内存中,而不是数据库中。因此,应使用瞬态存储任何预期将过期或随时可能过期的数据。
http://codex.wordpress.org/Transients_API
这在您的站点上可能并不特别重要,但通常情况下,使用Transients API确实很重要。不过,您必须对丢失的数据问题采取一些措施。类似于。。。
function get_twit_wpse_94911() {
$trans = \'test_transient\';
$data = get_option(\'_transient_\'.$trans);
if (empty($data)) {
$data = \'Yay Awesome Data\'; // default data if you want it
}
if (!get_transient($trans)) {
// check for new information
// $new = fetch_twitter_however_you_are_doing_it();
// check for the integrity of the new data
// !empty() may not be adequate
if (!empty($new)) {
$data = $new;
}
set_transient($trans,$data,60*60);
}
return get_transient($trans);
}