给wordpress用户评论添加等级VIP的方法

流年
流年
管理员
320
文章
408千
浏览
57,4341字数 1661阅读5分32秒

给wordpress用户评论添加等级VIP的方法-图片1

上午逛知更鸟大神的博客,发现评论多了一个用户的等级,觉得挺好,于是想自己折腾一个,自己折腾也是学习的过程。小白需要折腾。。 给wordpress用户评论添加等级VIP的方法-图片2

如大家所见,流年博客下面的评论已经增加了博主的验证图标和评论等级图标。只要在本站回复数超过3个,就会显示Vip1的标记。而且博主验证也很酷啊!

参照了百度很多教程。一个是百度版本的,一个是修改版本的教程,修改版和鸟哥是一样的,这里我先奉上百度得来的教程。

 

教程如下

 

首先上一个图演示:

给wordpress用户评论添加等级VIP的方法-图片3

添加functions.php代码

打开主题的functions.php,添加以下代码:

  1. /** 
  2.  * WordPress 添加评论之星 
  3.  */
  4. function get_author_class($comment_author_email,$user_id){
  5.     global $wpdb;
  6.     $author_count = count($wpdb->get_results(
  7.     "SELECT comment_ID as author_count FROM $wpdb->comments WHERE comment_author_email = '$comment_author_email' "));
  8.     /*如果不需要管理员显示VIP标签,就把下面一行的 // 去掉*/
  9.     // $adminEmail = get_option('admin_email');if($comment_author_email ==$adminEmail) return;  
  10.     if($author_count>=10 && $author_count<20)
  11.         echo '<a class="vip1" title="评论达人 LV.1"></a>';
  12.     else if($author_count>=20 && $author_count<40)
  13.         echo '<a class="vip2" title="评论达人 LV.2"></a>';
  14.     else if($author_count>=40 && $author_count<80)
  15.         echo '<a class="vip3" title="评论达人 LV.3"></a>';
  16.     else if($author_count>=80 && $author_count<160)
  17.         echo '<a class="vip4" title="评论达人 LV.4"></a>';
  18.     else if($author_count>=160 && $author_count<320)
  19.         echo '<a class="vip5" title="评论达人 LV.5"></a>';
  20.     else if($author_count>=320 && $author_count<640)
  21.         echo '<a class="vip6" title="评论达人 LV.6"></a>';
  22.     else if($author_count>=640)
  23.         echo '<a class="vip7" title="评论达人 LV.7"></a>';  }
  24. ?>

原理是根据评论人的Email,查询他的评论数量,来判断对应的VIP等级,这个代码很多地方可以定制的,比如样式可以自己定义,也可以设置所达到等级需要的评论数目。

 

调用函数

在适合的地方调用此函数,因为每个主题基本都不一样,所以需要大家找到你的主题调用评论的地方,一般在comments.php里面,搜索

  1. <?php comment_author_link();?>

在后面加上

  1. <?php get_author_class($comment->comment_author_email,$comment->comment_author_url,$comment->user_id)?>

如果需要添加博主认证则,就用这段代码:

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

增加CSS样式

style.css中加上以下代码,并把vip.png上传到主题的images目录下,就大功告成了!

注意修改CSS图片的目录

  1. /**博客VIP评论样式**/
  2. .vp,.vip,.vip1,.vip2,.vip3,.vip4,.vip5,.vip6,.vip7{background: url(images/vip.png) no-repeat;display: inline-block;overflow: hidden;border: none;}
  3. .vp{background-position:-515px -3px;width: 14px;height: 14px;margin-bottom: -2px;}
  4. .vip{background-position:-495px -2px;width: 15px;height: 16px;margin-bottom: -3px;}
  5. .vip1{background-position:-1px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
  6. .vip2{background-position:-63px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
  7. .vip3{background-position:-144px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
  8. .vip4{background-position:-227px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
  9. .vip5{background-position:-331px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
  10. .vip6{background-position:-441px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
  11. .vip7{background-position:-611px -2px;width: 46px;height: 14px;margin-bottom: -1px;}

 

 

图片自己保存:
给wordpress用户评论添加等级VIP的方法-图片4

使用以上代码我遇到的问题

使用上面的代码我遇到了一个问题就是我在comments.php里面根本找不到

<?php comment_author_link();?> 这段代码,只找到了这段代码。

  1. <ol class="comment-list">
  2.     <?php wp_list_comments( 'type=comment&callback=mytheme_comment' ); ?>
  3. </ol><!-- .comment-list -->

于是到百度搜索到了张戈博客的这篇文章:

WordPress显示访客UA信息:Show UserAgent纯代码轻度汉化版

参照这篇文章,我去functions.php找函数还是没找到,

我找到了comment-template.php这个文件,然后在这个里面找到了这段代码:

  1. <strong><?php commentauthor(); ?></strong>

然后把上面的调用代码添加到这段代码后面就OK了!

如图:

给wordpress用户评论添加等级VIP的方法-图片5

下面是知更鸟样式

鸟哥的没有博主认证和博主等级显示,我这里添加了,如图:

给wordpress用户评论添加等级VIP的方法-图片6

添加functions.php代码

打开主题的functions.php,添加以下代码:

  1. /**
  2.  * WordPress 添加评论之星
  3.  */
  4. function get_author_class($comment_author_email,$user_id){
  5.     global $wpdb;
  6.     $author_count = count($wpdb->get_results(
  7.     "SELECT comment_ID as author_count FROM $wpdb->comments WHERE comment_author_email = '$comment_author_email' "));
  8.     /*如果不需要管理员显示VIP标签,就把下面一行的 // 去掉*/
  9.     // $adminEmail = get_option('admin_email');if($comment_author_email ==$adminEmail) return;
  10.     if($author_count>=10 && $author_count<20)
  11.         echo '<a class="vip1" title="评论达人 LV.1"><i class="fa fa-vimeo-square"></i><span class="lv">1</span></a>';
  12.     else if($author_count>=20 && $author_count<40)
  13.         echo '<a class="vip2" title="评论达人 LV.2"><i class="fa fa-vimeo-square"></i><span class="lv">2</span></a>';
  14.     else if($author_count>=40 && $author_count<80)
  15.         echo '<a class="vip3" title="评论达人 LV.3"><i class="fa fa-vimeo-square"></i><span class="lv">3</span></a>';
  16.     else if($author_count>=80 && $author_count<160)
  17.         echo '<a class="vip4" title="评论达人 LV.4"><i class="fa fa-vimeo-square"></i><span class="lv">4</span></a>';
  18.     else if($author_count>=160 && $author_count<320)
  19.         echo '<a class="vip5" title="评论达人 LV.5"><i class="fa fa-vimeo-square"></i><span class="lv">5</span></a>';
  20.     else if($author_count>=320 && $author_count<640)
  21.         echo '<a class="vip6" title="评论达人 LV.6"><i class="fa fa-vimeo-square"></i><span class="lv">6</span></a>';
  22.     else if($author_count>=640)
  23.         echo '<a class="vip7" title="评论达人 LV.7"><i class="fa fa-vimeo-square"></i><span class="lv">7</span></a>';
  24. }
  25. ?>

使用下面的CSS样式:

  1. /*VIP评论之星*/
  2. .comment-author .fa {
  3.     color:#d03333;
  4.     padding-left:5px
  5. }
  6. .lv {
  7.     font-size:13px;
  8.     color:#999;
  9.     padding-left:3px
  10. }
  11. .vip1 .fa {
  12.     color:#46c0e6
  13. }
  14. .vip2 .fa {
  15.     color:#f49800
  16. }
  17. .vip3 .fa {
  18.     color:#7ab951
  19. }
  20. .vip4 .fa {
  21.     color:#f566f5
  22. }
  23. .vip5 .fa {
  24.     color:#d03333
  25. }
  26. .vip6 .fa {
  27.     color:#d03333
  28. }
  29. .vip7 .fa {
  30.     color:#d03333
  31. }

 

然后把调用代码改成这样

  1. <?php get_author_class($comment->comment_author_email,$comment->user_id)?>
  2. <?php if(user_can($comment->user_id, 1)){echo "<a title='博主认证' ><i class='fa fa-check-square'></i></a>";}; ?>

OK完毕。

如果不想要博主认证和VIP显示,调用的时候就只添加下面这段代码:

  1. <?php get_author_class($comment->comment_author_email,$comment->comment_author_url,$comment->user_id)?>

博客最后更新:2024-1-13
流年
  • 本文由 流年 发表于2015年10月8日 14:31:24
  • 除非特殊声明,本站文章均为原创,需要转载,请留言说明!
评论  5  访客  2  作者  3
    • 懿古今
      懿古今 3

      修改版比较好,我的都是直接用文字代替

      • 侯雨辰博客
        侯雨辰博客 0

        改天给自己的博客弄一个试试看

        • 流年
          流年

          不知道大家看懂没有。 :evil: 写的我自己都晕了。。 :evil:

        匿名

        发表评论

        匿名网友
        :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
        确定

        拖动滑块以完成验证