WordPress开发之【Transients API存储】

2 1

WordPress的Transients API是和我们之前介绍的Options API非常类似的一个功能,与Options API常规数据存储不同,Transients API用于存储临时性、具有时效性的数据(我们可以称其为临时性option),比如某个网站的RSS订阅,某些需要复杂或长时间运算但结果往往不常变更的数据,如Blogroll列表、文章点击TOP10等等。

实际上,Transients API是基于Options API的高级应用,所以Transients API的使用方法也和Options API比较相似。

新增Transient

set_transient($transient, $value, $expiration);

$transient为transient的名字,在命名上尽量采用PHP变量名命名规则,如“my_transient”,$value为需要保存的值,$expiration是过期时间,以秒计算,与PHP的setcookie函数不同的是,这里的时间只需要传入相对于现在的秒数,而不需要加上系统时间戳。

//设定my_transient的值为my_value,在10分钟后过期
set_transient('my_transient', 'my_value', 60*10);

获取Transient

$value = get_transient($transient);

$transient为transient的名字,当该transient依然有效时,返回之前设定的值,当transient不存在或已经过期,则返回布尔值false。

删除Transient

delete_transient($transient);

一般情况下,系统会自动删除已经过期的transient,但我们可能需要手动删除时使用该函数。

Transients API并没有提供update_transient的函数,需要更新已有的transient可以直接使用set_transient。

简单的示例

if (false === ( $wpceo_feed = get_transient('wpceo_feed') ) ) {
     $wpceo_feed = fetch_feed('http://wpceo.com/feed/');
     set_transient('wpceo_feed', $wpceo_feed,86400);
}

通过系统内置函数,获取WPCEO的RSS订阅,存储于本地并在其他页面中调用,并设置过期时间为1天。

小结

Transients API是WordPress 2.8新增的功能,通过这个功能,可以方便地读写缓存,并和其他的创意配合,创作出一系列实用插件。

分类:WordPress开发 | 标签:,

2 Responses to WordPress开发之【Transients API存储】

  1. Pingback: GoTop’s Blog » 使用Wordpress的Transients API

  2. Pingback: WordPress开发之【Options API数据存储】 | WP CEO

Leave a Reply

Your email address will not be published. Required fields are marked *