为 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"中,对这个插件进行相关的设置,如下图:
当然,如果你不想使用插件的话,你也可以参考如下代码直接利用 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' ])) { // 运行结果缓存 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 建立缓存 - WordPress的详细内容...