Typecho代码版读者墙(不带头像缓存)

之前有博主来这里留言说,没有读者墙,刷着没意思。那时我也还没折腾一个读者墙的想法,直到昨晚,就心血来潮,想折腾一个读者墙出来玩一下。好了,于是这个玩意就诞生了。

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;
}
}
?>

调用方法:

<?php echo getFriendWall();?>

查看 HTML php Typecho的相关文章

转载本站原创文章请注明:文章转自 挨踢路,链接: https://itlu.net/articles/1954.html

评论列表(47条)

  1. 不错不错,有了留言墙就有了动力,哈哈

    1. 我就知道有些人喜欢这个玩意。。。

  2. 稳妥妥的在第一O(∩_∩)O哈哈~

    1. 你的数据,基本是最近一个月的,但最近一个月,其他数据不好看,我给统计到两个月了

  3. 效果不错,高手

  4. 你这个防盗链真让人崩溃

    1. 又拍太强悍了,我去取消算了。。。

  5. 不错的东西哦。收藏先。。

  6. 蛮不错的,改天我也学着捣鼓捣鼓。

    1. 生命不息,折腾不断

  7. 哥们,我又来了,可以换链接了吗?

    1. 又?你来过很多次了?

  8. 自己博客也想搞一个这个读者墙,.谢谢博主了,回去试试 病历店WWW.binglidan.NET

  9. 啊哈,善用搜索,被我找到了,嘎嘎

  10. 因为不喜欢用插件,所以搜索读者墙实现方法的时候找到了这篇日志
    非常感谢博主分享!!!已经用上了

    1. 很荣幸可以帮助到你,话说你在日本的?

      1. 嗯是呀,目前在日本读书

        1. 在这里碰到小F~~~

  11. 回复jasonjason

    请问,这个是怎么搞,有点糊涂了,是把代码加入functions里面,之后调用?但是我试了试无效啊,我单独创建了一个独立页面,把调用代码放了进去,还是无效果,这样是那里出错了吗?

    1. 1、很长的代码放到function;2、调用代码必须是在源码里面编辑,而不是写到后台编辑器。

      1. 回复jasonjason

        把你的代码放到function里面,之后我把调用放在自定义页面里面

        1. 现在是搞清楚了没??

          1. 回复jasonjason

            没有哇,调用出来之后不显示

  12. 又少装一个插件,稍微改了一下,改成v2ex

  13. 好像用不了

  14. 报错了,请问代码放到哪个地方

  15. 放到functions了,但是报错了

    1. 具体是什么错呢

      1. 500错误,我复制进去也出错了..错误的情况下进入后台编辑独立页面是不完整的界面。

        1. 这是要编辑到模板文件,不是加到后台编辑器

          1. 当然是模板文件,只要一加入这段代码就出错了..

            1. function丢到function文件,调用在模板文件。我就是这么写的

              1. 怪哉,function也是主题文件夹里的,其他主题也是一改就出错..这跟服务器有关系?

  16. 没太注意,现在用了别的代码,已经解决读者墙了

    1. 这个代码到现在都几乎没改

      1. 5年前的了

        1. 没有修改的必要啊

  17. 回复JdealJdeal

    大佬,有没有直接调用读者评论数的代码额,就是我是想在评论上加一个评论人之前已评论多少条的功能

    1. 评论的数据有可能比较大,不太建议评论加这功能。当然代码也可以写

  18. 带佬,我想问一下显示 Database Query Error是什么情况

  19. 过来学习学习,还没搞好唉

  20. 大佬新年快乐!

添加评论

您好,#请填信息# 确定

打赏请博主喝水
LOADING