wordpress - 如何使 wordpress 瞬变过期

标签 wordpress transient

我想编写更新查询来使 transient 过期。我将在 wordpress 选项表中将他们的时间更新为 1。

我有以名称 re_compare 开头的瞬变,并在参数更改后休息。

我的更新查询是

$wpdb->update( 
    'options', 
    array( 
        'option_value' => '1',  // string

    ), 
    array( 'option_name' => '%re_compare%' )

);

它不工作。基本上我想删除/终止已经存在的瞬变。

但是,如果我从选项表中删除瞬变,它们仍会显示在瞬变管理器插件中。所以想到将它们的过期时间设置为 1 秒。

最佳答案

不建议通过纯 SQL 从选项表中删除或修改瞬变。为什么?因为数据库实际上是存储瞬变的默认回退位置,而不是主要位置。如果有任何可用的对象缓存,则 transient 存储在那里,而不是在数据库中。因此,在您的情况下,很可能是这种情况 - 您正在从选项表中删除它们,但它们实际上是从对象缓存中读取的。

一般来说,您不必担心瞬变过期。 WordPress 有一个垃圾收集器可以自动清除它们。

如果 transients 中的数据变得陈旧并且您需要在它过期之前更新它,请为此使用 API 函数:

delete_transient( 'your_transient_name' );

另请注意,过期时间是 transient 可以存活的最大时间段。过了那段时间,它永远不会返回存储的值。但是,由于对象缓存逐出、数据库升级等原因,它可能在到期时间之前很久就不可用了。

所以,简而言之:

  • 过期时间是瞬时调用将停止返回值的 future 最大点
  • 可能由于其他原因,在过期时间到来之前很久就丢失了

处理瞬变的经验法则是:

  1. 使用 API 函数设置 transient
  2. 将过期时间设置为您绝对不希望它再有效的时间
  3. 如果您这边的数据发生变化(并且很可能会再次生成),请使用 API 函数将其删除
  4. 或者等着自然过期
  5. 稍后会被WP垃圾回收
  6. 在过期时间到来之前,不要指望它们始终可供您使用。不能保证它们会持续存在。

关于wordpress - 如何使 wordpress 瞬变过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43556957/

相关文章:

java - 可序列化类中的不可序列化字段(transient 关键字)

WordPress 网站中的 jQuery UI 工具提示

wordpress - 使用 WpGraphQL 显示草稿和待处理的帖子

javascript - 服务器文件的 URL 在 wordpress 站点的页面源中更改

sorting - 通过3个类对多对多进行排序:按关系数排序

java - 如何 Autowiring transient 属性?

grails - 从SQL查询Grails GORM设置 transient 变量

javascript - 在wordpress中动态添加和删除html表中的行

css - 如何向 "data"动画数字计数器添加一个字母? (WordPress - TheFox 主题)

serialization - ViewScoped Bean 中 SessionScope 的 ManagedProperty - transient ?