什么是”评论自动排第一“?

如图所示:

评论自动排第一

凡是在站内最新发表评论的用户会自动排到这里的第一位,并带有对方的网站链接。

该功能主要作用:促进评论氛围。


实现方法大致如下:

以下代码插入到functions.php:

function Autofirst(){
    $db = Typecho_Db::get();
    $query = $db->select()->from('table.comments')->where('authorId = ?','0')->order('coid',Typecho_Db::SORT_DESC)->limit(100);
    $result = $db->fetchAll($query);
    $arrUrl = array();
    $arrAuthor = array();
    foreach ($result as $value) {
        if($value["url"]!==null){
            array_push($arrUrl,$value["url"]);
            array_push($arrAuthor,$value["author"]);
        }
    }
    $su=array_filter(array_merge(array_unique($arrUrl)));
    $sa=array_filter(array_merge(array_unique($arrAuthor)));
    $num=0;
    for($i=0;$i<count(array_unique($su));$i++){
        if($su[$i]!=="" && $num<16){
            $num+=1;
            $db1 = Typecho_Db::get();
            $query1 = $db1->select()->from('table.comments')->where('url = ?',$su[$i])->order('coid',Typecho_Db::SORT_DESC)->limit(100);
            $result1 = $db1->fetchAll($query1);
            $arrAuthor1 = array();
            foreach ($result1 as $value) {
                    array_push($arrAuthor1,$value["author"]);
            }
            echo '<a href="'.$su[$i].'" rel="external nofollow" target="_blank">'.$arrAuthor1[0].'</a>';
        }
    }
}

调用方法:在模板中任意位置插入这行代码。

<?php Autofirst(100) ?>

bug概述:

  1. 在“typecho评论自动排第一”中会将”待审核的评论“也显示出来,还有垃圾评论中的评论者也会自动排到第一。

两种解决方案:
1.关闭评论审核。
2.改进代码。

这算不算是bug,就得看你有没有开评论审核了,总之我没开评论审核,所以对我来说不算bug,日后有时间的话我看看能不能修复它。

标签: Typecho

已有 8 条评论

  1. 低调 低调

    如果你没有填写网站地址就不会显示在上面的。。。算bug吗?

    1. 这个不算,原本就是设计给留下网址的评论者的,给他们留下一条不追随的外链,促进交流

  2. 博主有Wordpress版本的评论自动排第一的CSS吗?

    1. 木有哦,自己写吧~

  3. 可以把最近评论那个模块的代码挖出来用

    1. 嗯,这个方法应该可行

  4. 没之前的主题好看,这个太素了

    1. 是啊,没了华丽的外表,没那么吸引人了。

添加新评论