强仔博客

Typecho代码实现评论@小尾巴

Typecho代码实现评论@小尾巴,简单来说就是子级评论回复父级评论时候,在嵌套基础上,为了更好的让评论一目了然,增加 [c=red]@[/c] 小尾巴 ::aru:knife::

文本教程

在 [c=red]function.php[/c] 文件里面加上这个函数,管他什么主题,扔最后面就行。

function get_comment_at($coid){
$db   = Typecho_Db::get();
$prow = $db->fetchRow($db->select('parent,status')->from('table.comments')
    ->where('coid = ?', $coid));//当前评论
$mail = "";
$parent = @$prow['parent'];
if ($parent != "0") {//子评论
    $arow = $db->fetchRow($db->select('author,status,mail')->from('table.comments')
        ->where('coid = ?', $parent));//查询该条评论的父评论的信息
    @$author = @$arow['author'];//作者名称
    $mail = @$arow['mail'];
    if(@$author && $arow['status'] == "approved"){//父评论作者存在且父评论已经审核通过
        if (@$prow['status'] == "waiting"){
            echo '<p class="commentReview">(评论正在审核中)</p>';
        }
        echo '<a href="#comment-' . $parent . '">@' . $author . '</a>';
    }else{//父评论作者不存在或者父评论没有审核通过
        if (@$prow['status'] == "waiting"){
            echo '<p class="commentReview">(评论正在审核中)</p>';
        }else{
            echo '';
        }
    }

} else {//母评论,无需输出锚点链接
    if (@$prow['status'] == "waiting"){
        echo '<p class="commentReview">(评论正在审核中)</p>';
    }else{
        echo '';
    }
}
}

调用方法

我们先去typecho官网看看有关评论相关变量,变量 [c=red]<?php $comments->content(); ?>[/c] 为评论内容

前面我们加的函数也判断了父类评论和子类评论的关系,父类评论不加小尾巴,子类评论加小尾巴,所以我们直接在评论输出内容的地方前面放上小尾巴变量就行了,一般在 [c=red]commentes.php[/c] 主题文件中,放在前面即可。

小尾巴变量

<?php $parentMail = get_comment_at($comments->coid)?><?php echo $parentMail;?>

测试效果

刷新看看以前回复内容

结语

感谢访问强仔博客,希望本文对你有所帮助

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »