在一些Typecho网站的评论区里面,别人评论时会带上一个@小尾巴,怎么实现这个功能呢?

上教程

在function里面加上这个

//获取评论的锚点链接
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 '';
 }
 }
}

调用方法:在评论输出内容的地方前面放上这段代码

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