wordpress自带的缓存功能使用介绍

所属分类: CMS教程 / WordPress 阅读数: 1553
收藏 0 赞 0 分享

用静态化当然可以解决这些问题,不过对于流量不大的博客就没必要了。 wordpress自带有缓存体系,关键的函数你可以在wp-includes/cache.php或 Codex里查找到所有的函数。


你可以使用下列函数来实现添加缓存。

复制代码
代码如下:

wp_cache_add($key, $data, $flag = '', $expire = 0)

相反的,要删除缓存数据可以通过下面的方法实现。

复制代码
代码如下:

wp_cache_delete($id, $flag = '')

提取缓存数据:

复制代码
代码如下:

wp_cache_get($id, $flag = '')

替换缓存数据:

复制代码
代码如下:

wp_cache_replace($key, $data, $flag = '', $expire = 0)

 
举个例子,如果想输出最新评论,可以先从缓存里读取需要输出的HTML,如果没有,请求一次,成功后加入缓存,当然时间可以控制。
我知道有很多最新评论,相关文章免插件输出的方法,原理都一样,可以自行改改,贴个我用的:
config.php里面添加

复制代码
代码如下:

define('WP_CACHE', true);

如果你用了其它缓存插件,基本上这个就没效果了。因为这些插件有类似的方法。


复制代码
代码如下:

<?php
/**
* get recent comments
* @param unknown_type $args
* @return unknown_type
*/
function DeamworkRecentcomments($args='number=5&status=approve'){</p> <p> $cacheID = md5($args);
//有缓存就直接输出
if($output = wp_cache_get('recentComments_'.$cacheID, 'Winysky')){
echo $output;
return;
}</p> <p> //$rcms = get_comments($args);
global $wpdb;</p> <p> $my_email = "'" . get_bloginfo ('admin_email') . "'";
//自动获取博主邮箱
$rcms = $wpdb->get_results("
SELECT ID, post_title, comment_ID, comment_author, comment_author_email, comment_content
FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts
ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID)
WHERE comment_approved = '1'
AND comment_type = ''
AND post_password = ''
AND comment_author_email != $my_email</p> <p>ORDER BY comment_date_gmt
DESC LIMIT 10</p> <p>");</p> <p> //print_r($rcms);return;
if(empty($rcms)){
_e('没有数据');
return;
}
//历遍数据
$output = '';
foreach( $rcms as $rcm ){
$author = $rcm->comment_author;
//if($author =='admin'){continue;}
$content = DeamworkStriptags( $rcm->comment_content);
$the_title = get_the_title($rcm->comment_post_ID);
$s_excerpt = convert_smilies( DeamworkSubstr( $content, 200 ) );
$contents = '<span class=\'recentcommentslink_author\'>' . $author . '</span> <span class=\'recentcommentslink_on\'>on</span> <span class=\'recentcommentslink_title\'>' . $the_title . '</span><div class=\'recentcommentslink_excerpt\'>' . get_avatar($rcm->comment_author_email, 64). $s_excerpt . '</div>';</p> <p> $output .= '<li><div id="C_' . $rcm->comment_ID . '_d" style="display:none">' . $contents . '</div>' . '<a id="C_' . $rcm->comment_ID . '" class="recentcommentslink" href="' . get_permalink($rcm->comment_post_ID) . '#comment-' . $rcm->comment_ID . '" >' . get_avatar($rcm->comment_author_email, 32) . '</a></li>';</p> <p> }
//输出后加入缓存
wp_cache_add('recentComments_'.$cacheID,$output, 'Deamwork');
echo $output;
}

最后,试试效果吧~

更多精彩内容其他人还在看

wordpress 为主题添加AJAX提交评论功能的php代码

前几天,为了提高评论体验,为了减轻服务器负担,我为主题添加了AJAX提交评论功能,现在分享一下方法。
收藏 0 赞 0 分享

wordpress 优化指南

wordpress毫无疑问是一个优秀的博客系统,其最吸引人的一个特点就是有大量的外观主题(theme)可以满足个性化的博客展示需求。
收藏 0 赞 0 分享

wordpress 显示文章日期的方法

WordPress的模板非常灵活,一个优秀的模板所实现的功能往往超出你的想象。这篇文章说说在WordPress里调用文章的发布日期。
收藏 0 赞 0 分享

wordpress 博客优化历程(速度)

自从换了域名,换了主题以后,我一直努力令博客的浏览体验更加好,但因此也挂载了大量的JS文件,页面的载入速度一度变得非常缓慢。于是优化就迫在眉睫了。
收藏 0 赞 0 分享

wordpress 自动在正文内容后添加内容

很多时候,你都需要在文章内容后面添加一些信息,例如订阅,文章分享,收藏和Creative Commons协议声明等。一般情况下,你可以直接编辑主题的single.php文件添加代码来达到目的。
收藏 0 赞 0 分享

开发者应该留意的WordPress2.9新功能小结

WordPress是一款成熟的开源CMS平台,新推出的2.9版本依然保持了以往良好的口碑。这篇文章从WordPress 2.9的codex文档里摘录出几个开发者应该留意的功能进行简析。
收藏 0 赞 0 分享

允许 WordPress 上传任意文件的方法

从 WP 2.8.5 开始文件上传使用预定义的文件扩展名列表过滤,管理员也不例外。
收藏 0 赞 0 分享

WordPress 插件直接将服务器文件导入媒体库

WordPress 插件 直接将服务器文件导入媒体库
收藏 0 赞 0 分享

WordPress博客SEO更加完美的6个技巧

wordpress在搜索引擎优化方面做的也十分不错,在搜索引擎优化方面它基本上给我们解决了80%左右的问题,但余下的20%左右的SEO工作,还是需要人工要去做的,而且也是非常有必要的,怎么才能做好这余下的20%左右的工作呢?
收藏 0 赞 0 分享

WordPress 图片用单独域名储存方法

Yslow 提高网站加载速度里有这么一条:Used Cookie Free Domains , 大意是浏览器会对作用域内每个加载的对象传递 Cookie,在加载图像或者JS、CSS的时候最好用 Cookie-free 域名。如果没有多余的域名可以用一个子域实现,但是要设置 Coo
收藏 0 赞 0 分享
查看更多