WP_Cache的作用
WP_Object_Cache是WordPress用于缓存数据的类。每次页面载入时,都能够重新生成这些缓存数据。在wp-includes/cache.php文件中定义WP_Object_Cache。
编写插件时不要在代码中直接使用WP_Object_Cache,应使用下面列出的wp_cache函数。
默认情况下,WordPress不启用页面加载时的缓存功能——用户需要在wp-config.php文件中添加define('WP_CACHE', true);以启用该功能。
提示:请将define('WP_CACHE', true);添加在以下代码块的上方:
/* That's all, stop editing! Happy blogging. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
在一次单独的页面加载中,缓存可以减少数据库的查询次数。
wp_cache的函数
几乎所有wp_cache的函数都包括以下部分:
- key:暗示值的关键字
- $data:希望保存的值
- flag:可选,这是一种组织你的缓存数据的方式。如果你使用flag,你的缓存数据就会被存储在缓存文件夹下的一个子文件夹中。
- expire:时长,以秒为单位(默认为900)
wp_cache_add($key, $data, $flag = '', $expire = 0)
该函数首先查看所给的$key上是否有缓存对象。如果没有,保存$key,如果有则返回false。
wp_cache_delete($id, $flag = '')
该函数清除所给的文件。
wp_cache_get($id, $flag = '')
如果缓存对象未过期,该函数返回缓存对象的值。否则返回false。
wp_cache_replace($key, $data, $flag = '', $expire = 0)
若给出的缓存存在,替换该缓存。否则返回false。
wp_cache_set($key, $data, $flag = '', $expire = 0)
该函数设定缓存对象的值。如果缓存对象已经存在,覆盖已存在的缓存对象;如果缓存对象不存在,生成新的缓存对象。
wp_cache_init()
初始化一个新的缓存对象。启用缓存后,WordPress初始化时会调用该函数。
wp_cache_flush()
该函数清除所有缓存文件。
wp_cache_close()
该函数保存已缓存的对象。关闭动作钩子(hook)时,WordPress调用该函数。
示例
你可以用WP_Object_Cache 与 Snoopy类来缓存离线内容:
$news = wp_cache_get('news');
if($news == false) {
$snoopy = new Snoopy;
$snoopy->fetch('http://example.com/news/');
$news = $snoopy->results;
wp_cache_set('news', $news);
}
echo $news;
分类:中文手册