这个教程主要是方便和我一样使用 iGoogler 主题的人,能给自己的站点提一下速。因为一个效率优化做得那么好的主题,如果你还觉得速度慢,那真的是你不会使用了。
WordPress Transients API 简介
Transients 是瞬时的意思,WordPress 的 Transients API 就是 WordPress 用来存储一些缓存的数据到数据库中最简单也是最标准的方法,Transients API 给这些缓存的数据一个过期时间,并且时间到就会自动删除,所以如果你需要存储一些有生命周期的选项的时候,Transients API 就是最好的选择。
更让人感到欣喜的是,WordPress Transients API 不需要配合任何的服务器设置和插件。
使用 WordPress Transients API
下面我将以 iGoogler 主题的“最多评论的文章”为例,说一下如何使用 WordPress Transients API。
我们知道 “最多评论的文章”的获取需要进行大量的数据查询,大大降低了站点的效率。但是在短时间内,一个博客的“最多评论的文章”是不会变动的,所以我们就可以使用 WordPress Transients API 对“最多评论的文章”进行加速。
下面是把“相关文章”的数据写入缓存的例子,缓存时间为一天,即 86400 秒。
打开主题的 sidebar_r.php,将
<?php echo get_most_comments_posts_igoogler(5);?>
替换为
<?php $most_comments_posts_data = get_transient('most_comments_posts'); if(false === $most_comments_posts_data){ $most_comments_posts_data = get_most_comments_posts_igoogler(5); set_transient('most_comments_posts', $most_comments_posts_data, 86400); } echo $most_comments_posts_data; ?>
代码大意是:如果在缓存中找不到数据,就查询数据库,然后再将数据写入缓存,并设定过期时间为一天,即 86400 秒;如果找得到缓存,并且缓存没有过期,就直接使用缓存的数据。
由于我的博客较小,所以不需要太短的时间(在短时间内不会变动),如果你的博客较大,并且配上了其他缓存插件,你可以尝试使用“我爱水煮鱼”推荐的一个值——12 小时,即 43200 秒。