为您的WordPress产品构建欢迎页面:WP Transients API

在使用WordPress构建Web应用程序时,其强大的API提供了很多帮助。 使用Options API添加或检索任何数据都没什么大不了的。 但是有时我们需要存储具有到期时间的临时数据。

WordPress通过Transients提供了直观的缓存来做到这一点,即存储具有到期时间的临时数据。 我们将使用瞬态,所以我想为什么不重新看一下本文中的WordPress Transients API。

根据WordPress Codex

Transients API与Options API非常相似,但是具有到期时间的附加功能,该功能简化了使用wp_options数据库表临时存储缓存的信息的过程。

在本系列的范围内,瞬态提供了一种有效的方式,当用户通过存储临时数据来激活插件时,将用户重定向到欢迎页面。

在本文中,我们将探讨WordPress中的Transients API的概念以及它与Options API的区别。 所以,让我们开始吧。

瞬态API

瞬态通过提供自定义名称(键值对)和到期时间,为我们提供了临时存储缓存信息的方法。 一旦定义的时间范围结束,瞬变就会终止并被删除。 这些瞬变可提高性能并加快整个Web应用程序的性能。

但是出现一个问题: 到期时间是 使用WP Transient API 的唯一原因 吗?

答案是不! 尽管Option API达到了数据存储,清理和检索的相同目的,但对于大数据集,它可能无法提供最佳性能。

添加时间范围后,瞬变成为临时存储数据的最合适方法。 为了确保较少的Web查询,瞬态具有将数据存储在快速内存(例如Memcached )中而不是传统WordPress数据库中的功能。 还要注意的是,Transients本质上是通过缓存插件来加速的,而普通的Option则不是。 如法典中所述:

例如,一个Memcached插件将使WordPress将瞬态值存储在快速内存中而不是数据库中。 由于这个原因,应该使用瞬态来存储任何预期会到期或随时可能到期的数据。 暂态也不应被假定为存在于数据库中,因为它们可能根本不存储在数据库中。

因此,每当您需要在特定时间段后到期或被删除的功能时,请使用瞬态代替选项。 以后再说。

使用瞬态

瞬态使用非常简单的界面工作。 您可以使用它们执行三个基本功能:

  • 通过set_transient()函数创建/更新瞬态
  • 通过get_transient()函数检索瞬态
  • 通过delete_transient()函数删除瞬态

这三个基本操作可以帮助您提高Web性能。

1.创建/更新瞬态

使用set_transient()函数创建或更新任何瞬态。 该函数具有三个参数:

  • :(类型string )瞬变的名称。 长度不得超过172个字符。
  • :( mixed类型)这是需要存储的数据。 可以是PHP变量或数组对象。
  • 到期时间:(类型为int )直到到期的最长时间(以秒为单位)。 默认值0(无有效期)。

指向思考:您设置的到期日期是将存储瞬态的最大时间量。 在那之后,瞬变被删除。 但是它也可以在那之前被删除。 由于它是缓存的一部分,因此用户可以在此之前将其删除。 因此,始终将失效时间视为瞬态寿命中的最大时间,并仅保证在此之后将其删除。

<?php set_transient( string $transient, mixed $value, int $expiration ) ?>

前两个参数是键值对,并且是必填项,而第三个参数(定义最大到期时间)是可选的。

调用此函数的一个实际示例如下:

<?php 
    // Transient max age is 60 seconds.
    set_transient( '_welcome_redirect_wpw', true, 60 );
?>
瞬态时间常数

在上面的示例中,我添加了60秒作为第三个参数,它定义了删除瞬态之后的到期时间。 根据上面的示例,对象_welcome_redirect_wpw的最长_welcome_redirect_wpw只能为60秒。

在WordPress 3.5中,引入了几个常量来轻松表达时间。 这些常量使代码更全面,更精确。 清单如下:

MINUTE_IN_SECONDS  = 60 (seconds)
HOUR_IN_SECONDS    = 60 * MINUTE_IN_SECONDS
DAY_IN_SECONDS     = 24 * HOUR_IN_SECONDS
WEEK_IN_SECONDS    = 7 * DAY_IN_SECONDS
YEAR_IN_SECONDS    = 365 * DAY_IN_SECONDS

2.检索瞬态

通过set_transient()函数存储值之后,可以通过调用get_transient()函数来检索值。

它使用单个参数,即瞬变$transient的键(即名称),并返回$transient的(类型mixed )值。

标准格式为:

<?php get_transient( string $transient ); ?>

在我们的示例中,该值是通过以下方式获取的:

<?php get_transient( '_welcome_redirect_wpw' ); ?>

很简单吗? 但是,如果瞬态不存在或已过期,将会发生什么? 如果是这种情况,那么get_transient()函数将返回一个false值。

我建议您在获取瞬态值以测试其是否为假时使用标识运算符( === )。

$ a === $ b 相同 如果$ a等于$ b并且它们是同一类型,则为TRUE

3.删除瞬态

在某些情况下,您可能希望在瞬变终止之前将其删除。 delete_transient()函数可以帮助您。 其格式类似于get_transient()函数。

它采用单个参数,即瞬态$transient的键(即名称),并永久删除瞬态。

这是常规格式:

<?php delete_transient( string $transient ); ?>

在我们的情况下,我们可以这样删除它:

<?php
  // Delete the redirect transient.
  delete_transient( '_welcome_redirect_wpw' );
 ?>

瞬态的使用

瞬态可用于缓存从最基本的数据类型到完整的小部件的所有内容。 自启动以来,瞬态已在不同的Web项目中使用。 以下是瞬态的一些实用用法:

  • 当然,您可以在插件的欢迎页面中使用它们,这是本系列的范围。
  • 您可以在侧边栏小部件中使用它们,该侧边小部件列出了诸如热门博客评论,帖子等数据。
  • 您可以通过瞬变加快WordPress导航菜单。
  • 您可以缓存带有瞬变的标签云。

结论

WordPress Transients API的基础知识已全部完成。 在接下来的两篇文章中,我将为WordPress插件建立一个欢迎页面。 我将粗略的想法变成更有意义和更实际的东西。

最后,您可以在我的个人资料页面上捕获我的所有课程和教程,还可以在我的博客上关注我和/或在Twitter @mrahmadawais上与我联系 ,在那儿我写了有关WordPress的开发工作流的信息。

和往常一样,请不要在下面留下任何问题或评论,我将尽力回答每个问题或评论。

翻译自: https://code.tutsplus.com/articles/building-a-welcome-page-for-your-wordpress-product-wp-transients-api--cms-26017

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值