Typecho评论显示博主标签,最新评论不调用博主。

最近想美化下typecho的评论功能,需要添加博主的认证功能和右侧最新评论不调取博主的,经过检索得到解决方案,将解决过程分享如下。

第一种方案

去掉Typecho最近评论列表中博主的评论:

在最新评论列表调用代码中添加参数ignoreAuthor=true,如显示博主评论的最近评论调用代码如下:

<?php $this->widget('Widget_Comments_Recent')->to($comments); ?>

将该代码替换为

<?php $this->widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments); ?>

保存文件即可。

typecho网站添加博主认证及等级

这个功能其实非常简单,通过判断评论者的邮箱及评论条数,输出对应的文字或图片。

老规矩直接上代码。在主题模板的functions.php文件里添加以下代码。

/** 评论者认证等级 */
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<10 && $rbq>0) {
    echo 'VIP1';
    }elseif ($rbq<20 && $rbq>=10) {
    echo 'VIP2';
    }elseif ($rbq<40 && $rbq>=20) {
    echo 'VIP3';
    }elseif ($rbq<80 && $rbq>=40) {
    echo 'VIP4';
    }elseif ($rbq<100 && $rbq>=80) {
    echo 'VIP5';
    }elseif ($rbq>=100) {
    echo 'SVIP';
    }
}

再打开主题评论模板comments.php文件,在评论者名字输出位置后加上如下代码。

<?php dengji($comments->mail);?>

第二种方案

<?php
$me = md5(strtolower('279721075@qq.com')); //这里填入自己的邮箱
$boy = md5(strtolower('279721075@qq.com')); //这里填入好友的邮箱
$rz = md5(strtolower($comments->mail)); //用于判断邮箱
//博主样式
$str =  '<span class="commentapprove" style="color: #FFF;padding: .1rem .25rem;font-size: .7rem;border-radius: .25rem;background-color:#1ECD97;" >博主</span>';
//好友样式
$str2 =  '<span class="commentapprove" style="color: #FFF;padding: .1rem .25rem;font-size: .7rem;border-radius: .25rem;background-color:#1ECD97;" >好友</span>';
//开始判断
if($me==$rz){
echo $str;            //如果条件成立则输出'博主'样式
}if($boy==$rz){
echo $str2;            //如果条件成立则输出'好友'样式
}
?>

可以直接粘贴到评论页的作者后面进行使用

第三种方案

typecho有个函数是给文章作者的回复添加一个独一无二的class,我们可以利用这个class实现'博主'认证,或是其它。注意,此方法只适用于'博主',并不能自定义判断好友或其它。废话不多说,给文章作者回复加一个class的函数是

<?php echo $commentClass; ?>

如果你想让你的名称变成'红色'或是其它,那就好办了,直接

<span class="comment-author"><?php $comments->author(); ?></span>

在comment-author后面加入<?php echo $commentClass; ?>,注意,添加在双引号里面

如果你想展示'博主'的小标志,那可以单独插入一段

<span class="<?php echo $commentClass; ?>"></span>

添加相关Css,总之 自行发挥吧!

第四种方案

在functions.php中添加以下代码

/**    
 * 评论者认证    
 *    
 * @author ShingChi    
 * @access public    
 * @param str $email 评论者邮址    
 * @return viod     
 */     
function commentApprove($widget, $email = NULL)      
{      
    if (empty($email)) return;      
    //认证用户,再次添加认证用户邮箱      
    $handsome = array(      
        'xxx@126.com',       
        'xxx@qq.com',       
        'xxx@gmail.com'      
    );      
    if ($widget->authorId == $widget->ownerId) {      
        echo '<b class="vip author" title="很帅的博主"></b>';      
    } else if (in_array($email, $handsome)) {      
        echo '<b class="vip user" title="认证贵宾"></b>';      
    }      
}

comments.php,在适当的位置添加以下代码

建议添加在作者名称后面〜

<?php commentApprove($comments, $comments->mail); ?>

记得对CSS进行美化〜

以下是小米笔记的CSS美化

#comments ol li .comment-author .vip { display: inline-block; width: 16px; height: 16px; margin-left: 2px; overflow: hidden; background: class=string>url(/static/img/v.png) no-repeat; vertical-align: text-top; }      
#comments ol li .comment-author b.user { background-position: -16px 0; }

喜欢的可以使用〜!