WordPress

为 WordPress 的 Widget 建立缓存

个人认为 WordPress 的 Widget(小工具)非常的强大,一般的WordPress博客, Widget侧边栏都会用到最新文章、最新评论、友情链接等。对文章之类进行了缓存,但是侧边栏那?可能很少有人注意到(用静态页面缓存方法除外)。为了让你的 WordPress 站点飞起来,对 Widget 建立缓存也是必不可少的!
众所周知WP-Cache、WP Super Cache和W3 Total Cache这几款插件都是可以加速网页,也就是对文章之类的页面进行缓存。今天介绍一款插件,可以缓存WordPress的侧边栏(SideBar),同样起到加速页面显示的作用,wp widget cache这款插件就是对侧栏的widget进行缓存,提高侧栏widget的加载速度,这样就不至于日志加载完还要等待一段时间来加载侧栏widget。

WP  widget  cache插件功能特点

  • 支持设定时间更新缓存数据
  • 支持定义促发事件(例如:发布一篇文章)自动更新缓存数据
  • 支持对用户指定的边栏widget进行缓存处理(例如:你可以只缓存最新文章widget,但不缓存随机文章widget)
  • 安装设置简单,无须添加和修改源代码(比WP-Cache安装简单多了)

WP widget cache插件安装:

  • 下载 wp widget cache插件,然后解压上传插件到 /wp-content/plugins/ 下的文件夹(通过后台安装也可)。
  • 到WordPress管理后台插件页面激活插件,激活后插件后,即可使用。
    在后台的管理页面的“设置”-->“WP Widget Cache" 中,对这个插件进行相关的设置,如下图:
    Enable-Widget-Cache-shezhi

当然,如果你不想使用插件的话,你也可以参考如下代码直接利用 Widget Class 里的 update_callback() 方法进行数据缓存。

class Test_Widget extends WP_Widget {
// 注册 Widget
function register() {
register_widget(‘Test_Widget’);
}

// 构造函数
function construct() {
$widget_ops = array(‘classname’ => ‘test_widget’, ‘description’ => ( ‘测试挂件’) );
parent::construct(‘test_widget’, (‘Test Widget’), $widget_ops);
}

// Widget 主体输出
function widget( $args, $instance ) {
extract( $args );
// 如果缓存已经过期,则重新生成结果
if(false === get_transient($args[‘widget_id’])) {
/
……
执行 Widget 主体,在输出的同时把结果保存到 $data 变量里
…… /
// 运行结果缓存 1 小时
set_transient($args[‘widget_id’], $data, 3600);
} else {
echo get_transient($args[‘widget_id’]);
}
//……
}

// 保存 Widget 参数
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
// 更新参数时删除已有的缓存
delete_transient($this->id);
//……
return $instance;
}

// Widget 设置面板
function form( $instance ) {
//……
}

// 下面这个函数是新增加的,用来删除缓存
function update_callback($widget_args = 1) {
// 删除缓存
delete_transient($this->id);
delete_transient($this->id);
// 调用原来的 update_callback() 方法,防止出错
parent::update_callback($widget_args);
}
}

嘿嘿,最近比较忙,对周良博客的管理不是很到位,希望大家谅解!先送上一篇技术小菜,让大家开开胃,后期周良还会多多更新博客的,希望大家可以多多来访周良博客哦!

微信扫一扫,分享到朋友圈

为 WordPress 的 Widget 建立缓存
182

你也可能喜欢

182 条评论

  1. 我正在被这问题困扰。。太感谢了,赶紧试试去

  2. 我正在被这问题困扰。。太感谢了,赶紧试试去

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

关于周良粥凉

产品经理,现电商从业者;从事过互联网医疗与金融等行业。 / 写了 9 年独立博客,喜恶皆在字里行间。

分类

微信扫一扫

微信扫一扫