网站地图    收藏   

主页 > 后端 > wordpress教程 >

为 WordPress 的 Widget 建立缓存 - WordPress

来源:自学PHP网    时间:2014-11-28 23:42 作者: 阅读:

[导读] 个人认为 WordPress 的 Widget(小工具)非常的强大,一般的WordPress博客,Widget侧边栏都会用到最新文章、最新评论、友情链接等,对文章之类的进行了缓存,但是侧边栏那?可能很少有人注意到...

为 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()方法进行数据缓存.

  1. class Test_Widget extends WP_Widget { 
  2. // 注册 Widget 
  3. function register() { 
  4. register_widget('Test_Widget'); 
  5. // 构造函数 
  6. function __construct() { 
  7. $widget_ops = array('classname' => 'test_widget''description' => __( '测试挂件') ); 
  8. parent::__construct('test_widget', __('Test Widget'), $widget_ops); 
  9. // Widget 主体输出 
  10. function widget( $args$instance ) { 
  11. extract( $args ); 
  12. // 如果缓存已经过期,则重新生成结果 
  13. if(false === get_transient($args['widget_id'])) { 
  14.  
  15. // 运行结果缓存 1 小时 
  16. set_transient($args['widget_id'], $data, 3600); 
  17. else { 
  18. echo get_transient($args['widget_id']); 
  19. //...... 
  20. // 保存 Widget 参数 
  21. function update( $new_instance$old_instance ) { 
  22. $instance = $old_instance
  23. // 更新参数时删除已有的缓存 
  24. delete_transient($this->id); 
  25. //...... 
  26. return $instance
  27. // Widget 设置面板 
  28. function form( $instance ) { 
  29. //...... 
  30. // 下面这个函数是新增加的,用来删除缓存 
  31. function update_callback($widget_args = 1) { 
  32. // 删除缓存 
  33. delete_transient($this->id); 
  34. delete_transient($this->id); 
  35. // 调用原来的 update_callback() 方法,防止出错 
  36. parent::update_callback($widget_args); 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论