wordpress公告栏数据库缓存版

本来想大概八点二十发,但是没忍住.

wordpress公告栏数据库缓存版

  1. 完善了willin的数据库缓存代码,添加了删除评论时也刷新缓存的功能
  2. 公告栏只展示管理员主评论,不展示子评论
  3. 以下代码直接放在functions.php内,然后在需要展示公告栏的地方扔一句<?php bulletin();?>.
    使用之前请把post_id' => 1884的1884改成你的公告栏页面id
function bulletin(){
if (!$announcement = get_option('clear_buffer')) {
$args = array('post_id' => 1884,'number' => 5,'user_id' => '1',parent => '0');$announcement = ''; $comments = get_comments($args);foreach ($comments as $comment) {$announcement .= '<li>'. human_time_diff(get_comment_date('U',$comment->comment_ID), current_time('timestamp')) . '前'.' ' . get_comment_date('H:i',$comment->comment_ID) . '-<a href="' . get_permalink($comment->comment_post_ID) . "#comment-" . $comment->comment_ID . '" title= "'. strip_tags($comment->comment_content) . '">'. convert_smilies($comment->comment_content) . '</a></li>';}update_option('clear_buffer', $announcement);
}
echo $announcement;
}
function clear_buffer_function() {
update_option('clear_buffer', ''); // 清空缓存 
}
add_action('comment_post', 'clear_buffer_function'); // 新评论发布,清空缓存
add_action('edit_comment', 'clear_buffer_function'); // 评论被编辑,清空缓存
add_action('trashed_comment', 'clear_buffer_function'); //评论移至回收站,清空缓存

原理.

通过update_option来在数据库中添加表以实现缓存,此代码具有通用性,如果想为其他函数实现缓存,只需参照这个例子来折腾.例如,我公告栏原代码为:

function bulletin(){
$args = array('post_id' => 1884,'number' => 5,'user_id' => '1',parent => '0');$announcement = ''; $comments = get_comments($args);foreach ($comments as $comment) {$announcement .= '<li>'. human_time_diff(get_comment_date('U',$comment->comment_ID), current_time('timestamp')) . '前'.' ' . get_comment_date('H:i',$comment->comment_ID) . '-<a href="' . get_permalink($comment->comment_post_ID) . "#comment-" . $comment->comment_ID . '" title= "'. strip_tags($comment->comment_content) . '">'. convert_smilies($comment->comment_content) . '</a></li>';}
echo $announcement;
}

可以对比文章开头那段代码,一起来找茬,找到的茬(也就是我用红色标注的地方)就是数据库缓存通用代码.
以此类推,还可以缓存更多函数,如果要给不同的函数缓存,只需把其他函数的if (!$announcement = get_option('clear_buffer'))改成if (!$announcement = get_option('clear_buffer2')) ,
然后把

function clear_buffer_function() {
update_option('clear_buffer', '');  
}

改成

function clear_buffer_function() {
update_option('clear_buffer', ''); 
update_option('clear_buffer2', '');
//以此类推
}

其他地方不动,即可

福利

今天的代码有点长有点复杂,为了奖励各位认真看完的小盆友,送上一组福利…
这不是特效,是镜子太脏了..

LIKE OR SHARE IT:

admin发表于Code目录下,标签为,转载请保留链接

TOP DOWN
发表评论

您必须 [ 登录 ] 才能发表留言!

  1. 沙 发 跑调的包子

    沙发这是我的!!!!! :zhuangb: :zhuangb: :zhuangb: :zhuangb:

    三月 18, 2013 18:26:19
  2. 板 凳 胡倡萌

    沙发没有了 :ku: 有时间折腾的时候在慢慢看代码,不过先看看美女先 :huai:

    三月 18, 2013 18:47:05
  3. 地 板 xsinger

    这里永远有奇迹出现!!!一代代的沙发前赴后继的往上冲,太血腥了,我承认我倒下了, :cry:

    三月 18, 2013 19:14:03
  4. 地 毯 梦月酱

    程序员你好 – -

    三月 18, 2013 20:10:22
  5. 地 面 郑永

    一大早的,打开greader,听到最多的就是美元符号。。哈哈。虽然代码处听得很郁闷,不过可以看出这片技术文不容易啊,文章提到认真看的人,然后读到一组福利,文章没了,来网站一看,福利就是。。哈哈。。。。

    三月 18, 2013 20:42:25
  6. 地 下 郑永

    再说说这个公告栏,和z大弄过公告的,应该都喜欢,哈哈。

    三月 18, 2013 20:46:00
  7. 7 楼 不亦乐乎

    镜子太脏了。。。

    三月 18, 2013 20:59:32
  8. 8 楼 大发

    只对福利感兴趣。。

    三月 18, 2013 23:04:25
  9. 9 楼 Arch!tect

    很好奇你怎么学会这些技术的? 还有,小蝴蝶最漂亮~

    三月 18, 2013 23:43:50
  10. 10 楼 张书杨

    看到代码就昏昏欲睡,最后倒是眼前一亮。里面几个参数具体是什么含义?如number等,如需滚动显示怎样设置?

    三月 19, 2013 00:04:13
  11. 11 楼 619影视

    嗷~嗷~~嗷~~~我是一只来自北方的狼,半夜起来看美女学技术

    三月 19, 2013 02:35:58
  12. 12 楼 619影视

    你哪么美,你哪么美~~~~

    三月 19, 2013 02:36:51
  13. 13 楼 airoschou

    右上Tabs评论和链接貌似重叠了, 一样的内容,望确认一下. :guai:

    三月 19, 2013 10:10:12
  14. 14 楼 ChoJemmy

    小蝴蝶最漂亮。哇塞,在GR里看到差点就错过福利了!!已经右键保存。 代码虽然我已经很仔细的看了一遍,但是…

    三月 19, 2013 10:20:44
  15. 15 楼 ChoJemmy

    稍微手慢点就到四十开外去了,太夸张了。哪天折腾一个抢沙发工具。

    三月 19, 2013 10:22:31
  16. 16 楼 Cawn

    :ku: 很想添加一个公告栏功能,但碍于能力有限,代码理解不甚,遂料想如若姐姐给个直接使用的代码片段,私心想着兄弟姐妹们,如此一来定可促进友谊,对你的人际关系也是大有裨益的,更况增加了你的代码功底,那真是再好不过了!

    三月 19, 2013 12:48:01
  17. 17 楼 冯广顺

    最近在做个人简历,没有碰博客,有空再研究。 为此福利,评得义无反顾,大爱~~ :meme:

    三月 19, 2013 18:47:07
  18. 18 楼 冯广顺

    吃饭前更新了一下,终于让公告栏更加完美了。本来想试着将显示的样式调整一下(将时间放在心情的后面,或独立分一行),结果不知道怎么拆移,最后只能说,好吧,先到这儿了。

    谢谢你的方法,很实用。表情能不能加一个[good]?想赞一下,没找到这表情~

    三月 19, 2013 19:42:19
    • 小蝴蝶

      @冯广顺 大拇指表情?回头加一个,等着让人赞我,哈哈
      把你代码发给我邮箱(边栏有),我帮你拆移吧,备注说好是要放后面还是分一行

      1801室 三月 19, 2013 23:38:26
      • 冯广顺

        @小蝴蝶 给了你邮件。 我继续工作去。。。。(对啊,QQ表情有很多很适合你的访客用,比如流口水、双眼发光、邪恶的笑等等,哈哈~~~)

        1802室 三月 20, 2013 09:56:50
  19. 19 楼 梦之翼

    好一个霸气的程序媛……

    四月 8, 2013 13:38:33
  20. 20 楼 rainzee

    typecho的没戏

    六月 22, 2013 13:59:24
  21. 21 楼 wdz

    good.福利很好,很正。技术也牛

    七月 16, 2013 18:02:05
  22. 22 楼 kn007

    我更喜欢用WP_OBJECT_CACHE

    七月 21, 2013 20:01:28
  23. 23 楼 kn007

    因为能存储比较大的数据。我有个页面差不多近4M多的结果(1W7的查询),根本无法保存到mysql。。。所以用了wp_cache_*

    七月 21, 2013 20:05:03