实现每评论一次自动排第一功能(Typecho版)

转载   梁兴健个人博客  2018-08-23 07:04:20  163 人阅读  32 条评论

在我第一次进入 boke112 的时候,就被它首页的“每评论一次就会自动排在本栏目和对应博客导航分类页面第一位”深深吸引住了。然后我也想弄出这样一个功能,但是 boke112 分享的《WordPress 博客导航实现最新评论自动排第一功能》是 WordPress 教程,而我使用的是 Typecho,所以只能找人帮我写,但写出来的结果并不理想,有很多 bug。

第一次做这个功能是两个月前的事情,群里的一位小哥帮我写的,那时候的 bug 很多,经常出现网址错误、名字错误和空白等。现在周末闲着没事干,就把这个功能修复了一下,虽然这代码看起来就这么几十行,但我花了很多精力在上面,我没学过 PHP,所以每个函数都是查百度查了很久才查出来的。(被迫学习。)现在我又忘了这些函数是什么意思了,不管了,反正能用就行。

这是我在本博客里使用的效果:

实现每评论一次自动排第一功能(Typecho版) 海纳百川 第1张

我感觉这效果还不错,好东西自然不能独享,正所谓独乐乐不如众乐乐,这次就拿出来和大家分享一下吧。

下面是主要代码(插入到 functions.php 中):

  1. function Autofirst(){
  2.     $db = Typecho_Db::get();
  3.     $query = $db->select()->from('table.comments')->where('authorId = ?','0')->order('coid',Typecho_Db::SORT_DESC)->limit(100);
  4.     $result = $db->fetchAll($query);
  5.     $arrUrl = array();
  6.     $arrAuthor = array();
  7.     foreach ($result as $value) {
  8.         if($value["url"]!==null){
  9.             array_push($arrUrl,$value["url"]);
  10.             array_push($arrAuthor,$value["author"]);
  11.         }
  12.     }
  13.     $su=array_filter(array_merge(array_unique($arrUrl)));
  14.     $sa=array_filter(array_merge(array_unique($arrAuthor)));
  15.     $num=0;
  16.     for($i=0;$i<count(array_unique($su));$i++){
  17.         if($su[$i]!=="" && $num<16){
  18.             $num+=1;
  19.             $db1 = Typecho_Db::get();
  20.             $query1 = $db1->select()->from('table.comments')->where('url = ?',$su[$i])->order('coid',Typecho_Db::SORT_DESC)->limit(100);
  21.             $result1 = $db1->fetchAll($query1);
  22.             $arrAuthor1 = array();
  23.             foreach ($result1 as $value) {
  24.                     array_push($arrAuthor1,$value["author"]);
  25.             }
  26.             echo '<a href="'.$su[$i].'" rel="external nofollow" class="item col-lg-3 col-md-3 visible-lg visible-md" target="_blank"><i class="glyphicon glyphicon-leaf"></i> '.$arrAuthor1[0].'</a>';
  27.         }
  28.     }
  29. }

这是调用代码和 css(如果你跟我一样,用的是 handsome 主题,就直接插入到 index.php 的"</header>"下面):

  1. <div class="row autofirst visible-lg visible-md">
  2. <p>
  3. <i class="glyphicon glyphicon-th"></i> 每评论一次就会自动排在本栏目第一位
  4. </p>
  5.     <?php Autofirst(100) ?>
  6. </div>
  7. <style>
  8. .autofirst{
  9.     margin:20px 20px 5px 20px;
  10.     padding:10px;
  11.     box-shadow: 0 1px 8px rgba(0,0,0,0.12), 0 1px 8px rgba(0,0,0,0.24);
  12.     background-color:white;
  13.     border-radius:3px;
  14. }.item{
  15.     padding:5px 0px;
  16. }
  17. </style>

上面的这两段代码中的 HTML 和 CSS 我是按照 handsome 主题制定的,使用其他主题的同学可以自己把 HTML 和 css 改一下。

温馨提示:

提示内容以上代码仅适用于 Typecho,如果想要获取 Typecho 版本的最新样式请移步《“评论自动排第一”新样式,handsome 专用》。如果是 WordPress 的,请参考文章《WordPress 博客导航实现最新评论自动排第一功能》。

历史上的今天:

如何免费领取阿里云1000元代金券?
文章标签: ,   ,  
原文地址:https://liangxingjian.com/archives/242
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为转载文章,来源于 梁兴健个人博客 ,版权归原作者所有,欢迎分享本文,转载请保留出处!
转载砖家

相关文章 分类热门分类热评最新问答

 发表评论

中国赞表情摊手表情吃瓜表情笑哭表情偷笑表情衰表情汗表情思考表情费解表情抓狂表情晕表情流泪表情疑问表情嘻嘻表情吃惊表情鼓掌表情

  1. 暗潮
    暗潮 @回复

    哪位大佬也搞个zblog的吧,o(* ̄︶ ̄*)o

  2. 暮色
    暮色 @回复

    大佬可以啊 ,技术杠杠的!

  3. 明月清风
    明月清风 @回复

    看来要学学,搞个zblog的

    • 懿古今
      懿古今2018-08-24 11:25  回复

      @明月清风[嘻嘻] 这个可以有,弄好之后可以投稿过来,目前WordPress版本、typecho版本都有,就差zblog版本了

  4. 互帮自学
    互帮自学 @回复

    很不错,感谢无私奉献

  5. 木禾谷
    木禾谷 @回复

    很不错哦。 [思考]

  6. 梁兴健
    梁兴健 @回复

    能促进评论氛围 [嘻嘻]

  7. uzkit
    uzkit @回复

    代码看着就眼晕,感觉用处不是很大

  8. 闲鱼
    闲鱼 @回复

    蛮好的功能,之前考虑过添加,可惜首页没位置了

  9. 天赋网
    天赋网 @回复

    今天发现我的网站被人盯上了,还搞了个镜像站,要怎么办啊,求助各位大佬,采集我的博客的是vvjcw. com [泪]

  10. 重蔚自留地
    重蔚自留地 @回复

    我还是比较喜欢时间排列…..

  11. 99八十一
    99八十一 @回复

    用了很长时间了,还不错。只不过放留言板了 [嘻嘻]

  12. 于闻观纸
    于闻观纸 @回复

    大招!个人真的不需要!

  13. 很萌
    很萌 @回复

    这个看需要了,我觉得一般的博客不需要这个吧,都是站长聚集的网站搞搞宣传一下还行!

  14. 异星软件空间
    异星软件空间 @回复

    终于放出来了!

  15. 网赚乎博客
    网赚乎博客 @回复

    功能不错,比较实用。

  16. 区块链
    区块链 @回复

    [吃惊] 挺好的!

  17. 靠谱学生兼职网
    靠谱学生兼职网 @回复

    有没有ZB版的呢??

  18. 吃货小栈
    吃货小栈 @回复

    真心很赞,哈哈!这对我们小博客的聚合和活跃还是很重要的!

  19. 学习笔记Blog
    学习笔记Blog @回复

    确实很不错,谢谢分享!我已经是用上了!

  20. 轻羽
    轻羽 @回复

    像我这种小IP站就用不得了 [吃瓜]

  21. 拍视频赚钱
    拍视频赚钱 @回复

    能不能帮我也实现这个功能呢