我想编写更新查询以使瞬态过期。我会在wordpress选项表中将时间提高到1。
我有一个以名称re_compare
开头的瞬态,并在参数更改后休息。
我的更新查询是
$wpdb->update(
'options',
array(
'option_value' => '1', // string
),
array( 'option_name' => '%re_compare%' )
);
它不起作用。基本上我想删除/过期已存在的瞬态。
但是如果我从选项表中删除瞬态,它们仍会在瞬态管理器插件中显示。所以想把他们的过期时间设置为1秒。
答案 0 :(得分:4)
建议不要通过普通SQL从选项表中删除或修改瞬态。为什么?因为数据库实际上是存储瞬态的默认回退位置,而不是主要的。如果有任何对象缓存可用,则将瞬态存储在那里,而不是存储在数据库中。因此,在您的情况下,很可能就是这种情况 - 您要从选项表中删除它们,但它们实际上是从对象缓存中读取的。
一般情况下,您不必担心瞬态到期。 WordPress有一个垃圾收集器,可以自动清除它们。
如果瞬态数据变得陈旧,并且您需要提前更新它,请使用API函数:
ListView lv = ...;
var valueList = lv.Items.Cast<ListViewItem>()
.Select(lvi => (Values)lvi.Tag)
.ToList();
请注意,到期时间是瞬态可以存在的最长时间段。在那段时间之后,它永远不会返回储值。但是,由于对象缓存逐出,数据库升级等原因,它可能在到期时间之前很久就不可用。
简而言之:
使用瞬态的经验法则是: