iGoogler 优化教程(一):使用 WordPress Object Cache

这个教程主要是方便和我一样使用 iGoogler 主题的人,能给自己的站点提一下速。因为一个效率优化做得那么好的主题,如果你还觉得速度慢,那真的是你不会使用了。

WordPress Object Cache 简介

WordPress Object Cache(WordPress 对象缓存)是 WordPress 自身的缓存机制,它的主要功能是把负责查询或者运算的结果按照 Key-Value 这样的方式(WordPress 还支持按照 Group 来划分和避免缓存的内容冲突)存储到对象里面,下次进行同样操作的时候,可以让直接从这个对象中取出数据,不用重复到数据库中或者其他外部网站获取数据。

由于 WordPress Object Cache 的特性,这个自身的缓存机制注定要配合服务器设置(财大气粗呀~)以及插件。如果你和我一样,没办法接触到类似于 Memcached 之类的东西的话,我推荐你使用 WP File Cache,他能帮助你把数据查询缓存到文件中。这样效率和速度都非常快的。如果不配合服务器设置和插件的话,个人感觉是没有什么作用的。

使用 WordPress Object Cache

下面我将以 iGoogler 主题的“相关文章”为例,说一下如何使用 WordPress Object Cache。

我们知道 “相关文章”的获取原理是通过文章的 Tags 来获取相关文章,相同的 Tag 越多,相关性越强,这样就需要进行大量的数据查询,大大降低了站点的效率。但是,一篇文章,在短时间内,它的“相关文章”是不会变动的,所以我们就可以使用 WordPress Object Cache 对“相关文章”进行加速。

下面是把“相关文章”的数据写入缓存的例子,缓存时间为一个小时,即 3600 秒。

打开主题的 loop_single.php,将

<?php echo wp_get_related_posts_igoogler(10); ?>

替换为

<?php
global $post;
$related_posts_data = wp_cache_get($post->ID, 'related_posts');
if(false === $related_posts_data){
	$related_posts_data = wp_get_related_posts_igoogler(10);
	wp_cache_set($post->ID, $related_posts_data, 'related_posts', 3600);
}
echo $related_posts_data;
?>

代码大意是:如果在缓存中找不到数据,就查询数据库,然后再将数据写入缓存,并设定过期时间为一个小时,即 3600 秒;如果找得到缓存,并且缓存没有过期,就直接使用缓存的数据。

此文章是由nikbobo发表在旧博客分类目录的。将固定链接加入收藏夹。

关于 nikbobo

Nikbobo,本名刘永强,记忆空间站长,男,1998 年出生于广东茂名,至今(2020 年)21 岁,目前(2020 年)就读于广州大学华软软件学院,常以“nikbobo”这个网名混迹互联网。如无特殊注明,Nikbobo 在本站发表的文章,遵循 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议。详情请参阅关于页面的作者介绍。

发表评论

您的电子邮箱地址不会被公开。