到PPRPP搜索首页    
            
   
网站标题: WordPress博客如何建立Widget缓存_源码_站长之家ChinaZ.com
网站关键词: wordpress教程 wordpress下载 wordpress wordpress Widget缓存
网站描述: WordPress 的 Widget 功能具有容易定制和排版灵活的特点,本文讲一下WordPress 怎么给Widget设置缓存。
内容预览: 站长之家 站长论坛 站长工具 源码下载 站长素材 免费统计 建站大师 主机之家 广告联盟 站长俱乐部 站长问答 网站建设资源 站长交易赚钱 alexa排名查询 百度权重查询 seo概况查询 友情链接查询 google pr查询 whois信息查询 域名备案查询 字体下载 高清壁纸 简历模板 高清图片 矢量素材 ppt模板 psd素材 站长下载 down chinaz com 报导首页 动态 调试 评测 环境 投稿 源码下载 您的位置 源码 - 源码报导 调试 wordpress博客如何建立widget缓存 wordpress博客如何建立widget缓存 作者:匿名 hi hi 来源: codecto 浏览: 次 2012-5-10 17 20 39 字号:大 中 小 摘要 wordpress 的 widget 功能具有容易定制和排版灵活的特点,本文讲一下wordpress 怎么给widget设置缓存。 wordpress 的 widget 功能凭借其容易定制和排版灵活的特点,我在做项目的时候特别喜欢用。最近在给雷锋网改版的时候除了首页的分类推荐使用 widget 来排版以外,ios 榜单也做成了 widget,由于榜单是通过 itunes 接口来获取数据的,因此数据必须缓存一段时间,才能避免每次访问都需要从接口获取数据的问题。嗯,今天就说说怎么给 widget 设置缓存。 先简单讲解一下 wordpress 默认的两种缓存机制,一种是 transient cache ,transient cache通过数据库的 options 表进行缓存,会产生两行记录,一行用于记录缓存内容,一行用于记录缓存时间,在调用的时候,至少产生两次数据库查询(没有任何数据库缓存的情况下);另一种是 object cache ,在没有安装任何缓存插件的情况下,wp_object_cache 会把数据缓存到 global 变量的一个元素里,缓存内容只对当前页面有效,正是因为这一特点,在这个项目里应该选择 transient cache 来缓存 widget 的数据。 接下来先写一个最简单的 widget: add_action ‘widgets_init‘ array ‘test_widget‘ ‘register‘ ; 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 ; 保存 widget 参数 function update new_instance old_instance instance old_instance; return instance; widget 设置面板 function form instance 要给 widget 建立缓存的话,我必须得同时实现这些要求:缓存定期自动更新,更新 widget 参数的时候清除已有缓存,删除 widget 的时候把相关的缓存也删除掉。前两点我们可以通过修改 test_widget update 和 test_widget widget 实现,修改后的 class test_widget 为: 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 最后要在删除 widget 的时候把缓存删除,目前我使用的是一个比较暴力的方法: add_action ‘sidebar_admin_setup‘ ‘delete_test_widget_cache‘ ; function delete_test_widget_cache if isset _post ‘delete_widget‘ _post ‘delete_widget‘ isset _post ‘widget-id‘ _post ‘widget-id‘ delete_transient _post ‘widget-id‘ ; 至此,widget 缓存机制几经完成,但在删除插件时删除已有缓存这一步里,使用了一个暴力的方法,该方法缺点是:你删除其他的 widget 也会尝试删除缓存。经过分析 wordpress 源代码,发现删除 widget 里会调用 widget class 里的 update_callback 方法,利用这个方法去删除 widget 的缓存,是一个比较文艺的做法。我重新改写后的 class 如下: 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 ; ps一句:php class 真的很好用,能减少大量代码,以后要多多学习。 wordpress下载: wordpress v3 5 rc2下载 界面预览 软件大小: 5 77mb 软件类别: 国外软件 博客系统 软件语言: 多国语言 运行环境: php mysql 软件授权: 开源软件 更新时间: 2012-12-1 12 31 54 相关链接: home page 本文转自:http www codecto com 2012 04 wordpress-widget-transient-cache 打印 复制链接 收藏 关闭 分享到 sssss tags: wordpress教程 wordpress下载 wordpress wordpress widget缓存 责任编辑: cc120 上一篇: 帝国cms 计划任务功能详细使用教程 下一篇: 鼎太播客视频分享系统安装图文教程 相关报导 · 新浪sae搭建wordpress网站固定链接设置url静态化 · 百度官方wordpress结构化数据插件百度sitemap发布 · wordpress丢失管理员权限的解决办法 · 使用sql来管理你的wordpress评论 · 通过自定义模板,为你的wordpress主题添加文章格式 · wordpress去掉分类category标志代码实现版本 · 让wordpress飞起来,加速wp的基本技巧 dedecms教程:列表页缩略图随机调用 本次dedecms教程小编为大家讲解dedecms列表页中随机调用缩略图的方法,默认的缩略图是取第一张图片,通过修 详细 ·pageadmin cms关键词链接的使用方法 ·解决dedecmsv5 7 sp1广告不能显示的问题 ·微信公众平台java开发详解(工程代码 解析) ·对于个人淘宝客网站优化与运营的建议 热门源码下载推荐 禅道项目管理:国产开源软件 cmseasy:免费营销型企业站 bbsmax v5 0:最好的 net论坛 espcms:开源免费的企业站 ·社区论坛 hadsky轻论坛 v2 3 0 ·企业政府 网展中英企业网站系统 v3 2 ·企业政府 网展企业网站系统蓝色风格 v3 5 ·企业政府 高三中英繁企业网站系统高级版 v2 8 ·企业政府 高三中英繁企业网站系统标准版 v2 8 ·协同办公 pescms team开源任务管理系统 v2 0 0 ·企业政府 腾和企业网站管理系统 多风格 v5 7 最受关注报导 ·社区系统近乎 spacebuilder 发布新版本v4 2 ·pageadmin cms关键词链接的使用方法 ·解决dedecmsv5 7 sp1广告不能显示的问题 ·网页设计和平面设计怎么选择 ·微信公众平台java开发详解(工程代码 解析) ·为什么tomcat要自定义classloader ·跨界店未来电商的雏形 ·404页面的重要性 ·对于个人淘宝客网站优化与运营的建议 ·在iis 7 5中调试lebishop多语言网上商店系统 ·新浪sae搭建wordpress网站固定链接设置url静态化 编辑推荐排行 关于我们 联系我们 广告服务 友情链接 版权声明 人才招聘 帮助 发布软件 源码 发布文章 稿件 copyright 2002-2015 站长之家 chinaz com all rights reserved 闽icp备08105208号 增值电信业务经营许可证闽b2-20070004号 ...
收录时间: 2020-05-23 21:59:17
网站地址: http://down.chinaz.com/try/201205/1916_1.htm
网站快照: PPRPP搜索快照
(做上本站链接,系统自动收录你的网站,以后每次有新的点入,自动排在第一位!)
http://so.pprpp.com