这篇文章主要介绍如何使用WordPress对象缓存,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
要深度理解 WordPress 优化,必须要首先了解 WordPress 对象缓存 机制。
WordPress 对象缓存机制和服务器设置
WordPress Object Cache(WordPress 对象缓存)是 WordPress 的缓存机制,它的主要功能是把负责查询或者运算的结果按照 Key-Value 这样的方式(WordPress 还支持按照 Group 来划分和避免缓存的内容冲突)存储到对象里面,下次进行同样操作的时候,可以让直接从这个对象中取出数据,不用重复到数据库中或者其他外部网站获取数据。
WordPress Object Cache 和服务器设置关系很大,如果系统开启了 Memcached 内存缓存,则这个对象是直接存入到内存,在数据未过期之前,以后再次读取这个数据都是直接从内存中读取的,这样效率和速度都非常快的。
如果服务器不支持内存缓存的话,则只能保证在当前页面下同样的查询或者操作不再重复从数据库中读取了。
WordPress 对象缓存的函数
使用 WordPress 对象缓存技术其实是非常简单的:
使用 wp_cache_add() 把数据添加到缓存中。
使用 wp_cache_set() 把数据设置到缓存中。
使用 wp_cache_get() 到缓存中读取数据。
使用 wp_cache_delete() 删除缓存中的数据。
这些函数会涉及到的四个参数:
参数
$key 对象的 key。
$data 要存的值。
$group 分组,可选参数,用来把缓存对象就行分组。
$expire 过期时间,可选参数,如果是默认缓存,这个参数没用,如果是内存缓存,是设置缓存的时间,单位是秒,默认为0(0的意思就是永远,不会自动过期)。
使用 WordPress 对象缓存
下面以我即将更新 WordPress 相关文章插件为例,讲讲如何使用 WordPress 对象缓存:
我们知道 WordPress 相关文章插件是通过 tag 和分类来获取相关文章,相同的 tag 和分类越多,相关性越强,这样就需要进行多个表联合查询来获取相关文章,这样效率其实是比较差的。但是一个文章它的相关文章一段时间内是不会变动的,所以我们就可以使用 WordPress 对象缓存对相关文章进行加速。
下面是把把相关文章的数据写入缓存的例子,使用当前 post_id 作为 key,related_posts 作为 group,缓存时间为一个小时,即 3600 秒。
global $post; $related_posts_data = wp_get_related_posts(); wp_cache_set($post->ID,$related_posts_data,'related_posts',3600);
上面只是把数据存到缓存对象中,我们在显示相关文章的时候,就要去调用这个对象缓存来使用,首先检查下是否已经有了缓存,如果你要的信息没有在缓存中,或者已经过期了。wp_cache_get() 会返回 false,如果这样,你就要去数据库中重新获取这些信息。否则就返回在缓存中的信息。
global $post; $related_posts_data = wp_cache_get($post->ID,'related_posts'); if(false === $related_posts_data){ $related_posts_data = wp_get_related_posts(); wp_cache_set($post->ID,$related_posts_data,'related_posts',3600); } echo $related_posts_data;
因为设置了一个小时,相关文章的数据就失效,这里一般就无需更新缓存了,如果你在后台更改了设置,需要立即清理缓存,可以使用 wp_cache_delete 进行清理:
wp_cacache_delete($post->ID,'related_posts');
WPJAM Basic 插件已经集成了 Memcached,下载 WPJAM Basic 之后,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下即可。
以上是如何使用WordPress对象缓存的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。