这是根据 willin kan 最近的文章《另类的缓存方式》里面的方法修改的,有人需要并找我帮忙更改一下读者墙代码,于是就顺便贴出来。
其实按照 willin 的文章是很容易修改的,不过没接触过 php 的朋友还是会不知如何下手。
下面是根据我现在用的读者墙代码修改成,有需要的朋友可以直接拿去,我写成函数方式,方便使用
1. 在主题的 functions.php 加入如下读者墙函数代码
/* 读者墙函数 - 数据库缓存方式版 */ function mostactive_zww() { if(!$mostactive = get_option('mostactive')){ global $wpdb; $limit_num = '16'; //显示数量 $time = '1 MONTH'; //最近1个月内 $noneurl = 'https://zww.me/'; //改为你自己博客地址 $my_email = "'" . get_bloginfo ('admin_email') . "'"; //排除管理员评论 $counts = $wpdb->get_results(" SELECT COUNT(comment_author) AS cnt, comment_author, comment_author_url, comment_author_email FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE comment_date > date_sub( NOW(), INTERVAL $time ) AND comment_author_email != $my_email AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT $limit_num "); $mostactive = ''; if(empty($counts)) { $mostactive = '<li>none data.</li>'; } else { foreach ($counts as $count) { $c_url = $count->comment_author_url; if ($c_url == '') $c_url = $noneurl; $title_alt = $count->comment_author . ' ('. $count->cnt. ' comments)'; $mostactive .= '<li class="mostactive">' . '<a rel="external nofollow" href="'. $c_url . '" title="' .$title_alt . '">'.get_avatar($count->comment_author_email,$size='40',$default='').'</a></li>'; } } update_option('mostactive', $mostactive); } echo $mostactive; } function clear_mostactive() { update_option('mostactive', ''); // 清空 mostactive } add_action('comment_post', 'clear_mostactive'); // 新评论发生时 add_action('edit_comment', 'clear_mostactive'); // 评论被编辑过
2. 在需要的地方调用此读者墙函数(如 sidebar.php)
<?php if(function_exists('mostactive_zww')) mostactive_zww(); ?>
ps:关于css样式参考以前我的文章《WordPress 免插件读者墙 willin 版本》
完。
zww
赏
oooo
or
- 本文标题:读者墙: 数据库缓存方式版
- 本文链接:https://zww.me/archives/25446
- 发布时间:2011年04月24日 20:18
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
沙发!
坐沙发木有小JJ
缓存什么的最喜欢了
地板也占了……嗯,我准备拿去。
@axiu
连抢三楼木有小鸡鸡...
@axiu
无语的三连发,比自沙还变态
看着还是比较累啊,PHP不行。
@SErHo
嘻嘻,可以直接用的,只要放对地方就行
修改显示数量无效,神马问题?
@ZhangJun
不会啊,我测试是ok的。
看过大师的代码,不过不会应用。多谢zww大哥的修改,拿走了~~~
@奚少
其实不复杂
你速度真快,这就改好了?!
@Microhu
本来就不是很复杂,主要是willin的idea
mark 下次折腾改加上去
@A.shun
我的加上了,3个地方用了
收藏备用
@winy
霍霍,上次你写的wp cache的方式我没测试成功,不知道怎么回事
嗯。读者墙我没用利用,可能是还没发现他的价值吧。
@wmtimes
其实可要可不要,用了就用吧
哇,Z大叔学的好快呀
@万戈
哪有你年轻人厉害,你是学到手,我是cp到手而已,木有具体了解
把内存当缓存了,快
@akasuna
内存缓存最快吧
各种缓存呀
@dee
霍霍
这个是更高级的版本了吧。
@园子
没啥版本吧,这个是我用的读者墙代码改过来的
请问有效果图吗?
@张刚
霍霍,这个就不需要了,要得话自己用firebug去测试
我设置的12个月... 嘘~ 人太少吗,看起来YY一些
@Veezy
哈哈哈,12个月啊……
get_option 去看看去-_,
@mice
嘻嘻,你主机给力不需要了吧
啦啦啦~~~灌水来啦~~~~
@Alex Gao
水多是好事
什么原理...我看看去~~
@mopvhs
慢慢折腾
又有新玩意儿了,先看看
@孤风
研究研究