纯代码添加WordPress评论者等级功能

如果主题自定义了评论模板,即在评论输出的时候使用回调函数来做的,这种情况使用纯代码增加评论VIP等级功能实现起来是比较容易的。
1、在主题 functions.php 文件加入以下代码:

function get_author_class($comment_author_email, $user_id){
    global $wpdb;
    $author_count = count($wpdb->get_results(
    "SELECT comment_ID as author_count FROM $wpdb->comments WHERE comment_author_email = '$comment_author_email' "));
    if($author_count>=1 && $author_count< 10 )//数字可自行修改,代表评论次数。
        echo '<a class="vip1" title="评论达人 LV.1"></a>';
    else if($author_count>=11 && $author_count< 20)
        echo '<a class="vip2" title="评论达人 LV.2"></a>';
    else if($author_count>=21 && $author_count< 40)
        echo '<a class="vip3" title="评论达人 LV.3"></a>';
    else if($author_count>=41 && $author_count< 80)
        echo '<a class="vip4" title="评论达人 LV.4"></a>';
    else if($author_count>=81 && $author_count< 160)
        echo '<a class="vip5" title="评论达人 LV.5"></a>';
    else if($author_count>=161 && $author_count< 320)
        echo '<a class="vip6" title="评论达人 LV.6"></a>';
    else if($author_count>=321)
        echo '<a class="vip7" title="评论达人 LV.7"></a>';

2、在主题文件 style.css 文件加入样式:

.vip,.vip1,.vip2,.vip3,.vip4,.vip5,.vip6,.vip7,.vp{background:url(/img/vip.png) no-repeat;display:inline-block;overflow:hidden;border:none}
.vp{background-position:-515px -2px;width:16px;height:16px;margin-bottom:-3px}
.vp:hover{background-position:-515px -22px;width:16px;height:16px;margin-bottom:-3px}
.vip{background-position:-494px -3px;width:16px;height:14px;margin-bottom:-2px}
.vip:hover{background-position:-494px -22px;width:16px;height:14px;margin-bottom:-2px}
.vip1{background-position:-1px -2px;width:46px;height:14px;margin-bottom:-1px}
.vip1:hover{background-position:-1px -22px;width:46px;height:14px;margin-bottom:-1px}
.vip2{background-position:-63px -2px;width:46px;height:14px;margin-bottom:-1px}
.vip2:hover{background-position:-63px -22px;width:46px;height:14px;margin-bottom:-1px}
.vip3{background-position:-144px -2px;width:46px;height:14px;margin-bottom:-1px}
.vip3:hover{background-position:-144px -22px;width:46px;height:14px;margin-bottom:-1px}
.vip4{background-position:-227px -2px;width:46px;height:14px;margin-bottom:-1px}
.vip4:hover{background-position:-227px -22px;width:46px;height:14px;margin-bottom:-1px}
.vip5{background-position:-331px -2px;width:46px;height:14px;margin-bottom:-1px}
.vip5:hover{background-position:-331px -22px;width:46px;height:14px;margin-bottom:-1px}
.vip6{background-position:-441px -2px;width:46px;height:14px;margin-bottom:-1px}
.vip6:hover{background-position:-441px -22px;width:46px;height:14px;margin-bottom:-1px}
.vip7{background-position:-611px -2px;width:46px;height:14px;margin-bottom:-1px}
.vip7:hover{background-position:-611px -22px;width:46px;height:14px;margin-bottom:-1px}

其中在样式代码的以下片段需要根据实际情况修改 VIP 等级图片的位置,这边的位置为“主题目录->img目录->VIP图片”。

.vp{background:url(/img/vip.png)

附:评论VIP等级图片(百度网盘下载,提取码: rr6n )
《纯代码添加WordPress评论者等级功能》
3、输出代码:

if ($comment->user_id == '1') {
        echo '<a title="博主认证" class="vip"></a>';
    }else{
        echo get_author_class($comment->comment_author_email,$comment->user_id);
    }

因为我们一般都是想要它在评论者昵称后面显示,在大部分自定义了评论模板的主题可以找到以下函数,一般把以上调用代码放在它后面就可以。

<?php comment_author_link() ?>

4、
本站的主题使用的是WordPress程序默认的评论模板,因此当年翻遍整个主题文件都没有找到 comment_author_link() 函数,然后黑鸟君是使用类似插件的机制,即使用钩子实现的,其中用到钩子函数为:get_comment_author_link()

除了输出方式差异,全部通过以上代码修改完成。特别说明:为防止灌水人员,三级VIP以下的评论不显示评论者链接。

《纯代码添加WordPress评论者等级功能》

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

  1. Lvtu 说道:

    大神,怎么用钩子来实现第三步和第四步呢?谢谢

    1. Lvtu 说道:

      能帮忙整理一份第3和第4步的教程发我邮箱吗? :028:
      虽然有点过份,但真心想要! :017:
      因为我试过好几种办法,都没成功。
      谢谢!

      1. Lvtu 说道:

        不用了,已自己搞定了。。。。

        1. 百克 百克 说道:

          你钩子怎么实现的我dux也是钩子

  2. 佛系派 佛系派 说道:

    感谢大佬教程