Typecho基于评论数的评论等级,其实我是想区分博主和阅读者的,预防回复评论的时候游客分不清谁是博主混乱,好像有类似的插件太麻烦了,所有直接用这个纯代码版的!


function dengji($i){
$db=Typecho_Db::get();
$mail=$db->fetchAll($db->select(array('COUNT(cid)'=>'rbq'))->from('table.comments')->where('mail = ?', $i)->where('authorId = ?','0'));
foreach ($mail as $sl){
$rbq=$sl['rbq'];}
if($rbq<1){
echo '博主';
}elseif ($rbq<5 && $rbq>0) {
echo '游客';
}elseif ($rbq<10 && $rbq>=5) {
echo 'V1';
}elseif ($rbq<15 && $rbq>=10) {
echo 'V2';
}elseif ($rbq<20 && $rbq>=15) {
echo 'V3';
}elseif ($rbq<25 && $rbq>=20) {
echo 'V4';
}elseif ($rbq>=25) {
echo '粉丝';
}
}

将上面代码加到functions.php里的最后面


然后在comments.php里找到如下位置(可能有的主题不一样),关键词:gravatar('32'),这个的意思就是输出头像的,我的例子下面还有网名输出,所以我就在网名后面加:

<?php $comments->gravatar('32'); ?>
<cite><?php $comments->author(); ?></cite>

加入下面代码

<span class=" <?php echo $commentAuthor; ?> ">【<?php dengji($comments->mail);?>】<?php $comments->author(false); ?>:</span>

我不想自定义CSS样式简单一点就这样放【<?php dengji($comments->mail);?>】进去,最好放在</cite>后面,因为我不需要空格,所以放到里面去了,如下!

<?php $comments->gravatar('32'); ?>
<cite><?php $comments->author(); ?>【<?php dengji($comments->mail);?>】</cite>

邮件错误再次更新
有评论邮件通知的,不能放在</cite>里面,会无法发送邮件,放在后面,没有邮件通知的可以放在!

<?php $comments->gravatar('32'); ?>
<cite><?php $comments->author(); ?></cite>【<?php dengji($comments->mail);?>】

博主标志错误
如果博主称号显示不是“博主”而是XX,那么请在Mysql里执行如下,authorid='1'的1是你博主的id在后台的管理-用户,鼠标放在用户名上面,浏览器左下角可以看到uid=X:

update typecho_comments set authorid='1' where mail='博主邮箱账号'