常用函数-wp_cache()

1条评论

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;

 

#1
如果用了wp-super-cache插件,是否应该define('WP_CACHE', false);