Typecho代码版读者墙(不带头像缓存)
之前有博主来这里留言说,没有读者墙,刷着没意思。那时我也还没折腾一个读者墙的想法,直到昨晚,就心血来潮,想折腾一个读者墙出来玩一下。好了,于是这个玩意就诞生了。
读者墙,说白了就是评论者按一定的顺序筛选,可以筛选全部的评论,可以筛选一段时间内的,可以按评论次数正序,倒序,总之都可以自己折腾。
代码其实网上有很多现成的,不过也不一定能完全符合自己。我这种不懂什么代码的,就只会修改别人的,使得符合自己使用。代码我也忘记是从哪里copy来的了,搜索了很多,一个个看,从一开始的自己折腾头像缓存代码的,调试很久无果,再后来用了头像缓存插件的,不知何故,很慢,故弃用。然后就剩下这个,头像直接读取远程服务器的,不缓存,速度反而快,还有木有节操啊?
反正就是启用了头像缓存插件,会慢到跟蜗牛一样!!!
一开始我用的是一个月,可是,发现数据很差,索性两个月得了,这不,效果如上~~~
读者墙地址,其实就是在留言板的页面上的,地址:https://itlu.net/guestbook/
下面贴个代码:
<?php
function getFriendWall(){
$period = time() - 2592000; // 单位: 秒, 时间范围: 30天
$db = Typecho_Db::get();
$sql = $db->select('COUNT(author) AS cnt', 'author', 'url', 'mail')
->from('table.comments')
->where('created > ?', $period )
->where('status = ?', 'approved')
->where('type = ?', 'comment')
->where('authorId = ?', '0')
->where('mail != ?', 'itlobo@itlobo.com') //排除自己上墙
->group('author')
->order('cnt', Typecho_Db::SORT_DESC)
->limit('26'); //读取几位用户的信息
$result = $db->fetchAll($sql);
$mostactive = "";
$my_array=array('www','0','1','2'); //我自定义的随机一个头像服务器,减少同时往一个服务器发起多次请求
if (count($result) > 0) {
foreach ($result as $value) {
$mostactive .= '<li><a href="' . $value['url'] . '" title="' . $value['author'] . ' : ' . $value['cnt'] . '次重要讲话" target="_blank" rel="nofollow">';
$mostactive .= '<img class="avatar" src='/index/thumb.png' data-original="http://'.$my_array[rand(0,3)].'.gravatar.com/avatar/'.md5(strtolower($value['mail'])).'?s=32&d=&r=G" width="32" height="32" /></a></li>';
}
echo $mostactive;
}
}
?>
function getFriendWall(){
$period = time() - 2592000; // 单位: 秒, 时间范围: 30天
$db = Typecho_Db::get();
$sql = $db->select('COUNT(author) AS cnt', 'author', 'url', 'mail')
->from('table.comments')
->where('created > ?', $period )
->where('status = ?', 'approved')
->where('type = ?', 'comment')
->where('authorId = ?', '0')
->where('mail != ?', 'itlobo@itlobo.com') //排除自己上墙
->group('author')
->order('cnt', Typecho_Db::SORT_DESC)
->limit('26'); //读取几位用户的信息
$result = $db->fetchAll($sql);
$mostactive = "";
$my_array=array('www','0','1','2'); //我自定义的随机一个头像服务器,减少同时往一个服务器发起多次请求
if (count($result) > 0) {
foreach ($result as $value) {
$mostactive .= '<li><a href="' . $value['url'] . '" title="' . $value['author'] . ' : ' . $value['cnt'] . '次重要讲话" target="_blank" rel="nofollow">';
$mostactive .= '<img class="avatar" src='/index/thumb.png' data-original="http://'.$my_array[rand(0,3)].'.gravatar.com/avatar/'.md5(strtolower($value['mail'])).'?s=32&d=&r=G" width="32" height="32" /></a></li>';
}
echo $mostactive;
}
}
?>
调用方法:
<?php echo getFriendWall();?>
赏
转载本站原创文章请注明:文章转自 挨踢路,链接: https://itlu.net/articles/1954.html
不错不错,有了留言墙就有了动力,哈哈
我就知道有些人喜欢这个玩意。。。
稳妥妥的在第一O(∩_∩)O哈哈~
你的数据,基本是最近一个月的,但最近一个月,其他数据不好看,我给统计到两个月了
效果不错,高手
乱搞的。
你这个防盗链真让人崩溃
又拍太强悍了,我去取消算了。。。
不错的东西哦。收藏先。。
蛮不错的,改天我也学着捣鼓捣鼓。
生命不息,折腾不断
哥们,我又来了,可以换链接了吗?
又?你来过很多次了?
自己博客也想搞一个这个读者墙,.谢谢博主了,回去试试 病历店WWW.binglidan.NET
啊哈,善用搜索,被我找到了,嘎嘎
因为不喜欢用插件,所以搜索读者墙实现方法的时候找到了这篇日志
非常感谢博主分享!!!已经用上了
很荣幸可以帮助到你,话说你在日本的?
嗯是呀,目前在日本读书
在这里碰到小F~~~
请问,这个是怎么搞,有点糊涂了,是把代码加入functions里面,之后调用?但是我试了试无效啊,我单独创建了一个独立页面,把调用代码放了进去,还是无效果,这样是那里出错了吗?
1、很长的代码放到function;2、调用代码必须是在源码里面编辑,而不是写到后台编辑器。
把你的代码放到function里面,之后我把调用放在自定义页面里面
现在是搞清楚了没??
没有哇,调用出来之后不显示
又少装一个插件,稍微改了一下,改成v2ex
好像用不了
报错了,请问代码放到哪个地方
放到functions了,但是报错了
具体是什么错呢
500错误,我复制进去也出错了..错误的情况下进入后台编辑独立页面是不完整的界面。
这是要编辑到模板文件,不是加到后台编辑器
当然是模板文件,只要一加入这段代码就出错了..
function丢到function文件,调用在模板文件。我就是这么写的
怪哉,function也是主题文件夹里的,其他主题也是一改就出错..这跟服务器有关系?
没太注意,现在用了别的代码,已经解决读者墙了
这个代码到现在都几乎没改
5年前的了
没有修改的必要啊
大佬,有没有直接调用读者评论数的代码额,就是我是想在评论上加一个评论人之前已评论多少条的功能
评论的数据有可能比较大,不太建议评论加这功能。当然代码也可以写
带佬,我想问一下显示 Database Query Error是什么情况
过来学习学习,还没搞好唉
大佬新年快乐!