上午逛知更鸟大神的博客,发现评论多了一个用户的等级,觉得挺好,于是想自己折腾一个,自己折腾也是学习的过程。小白需要折腾。。
如大家所见,流年博客下面的评论已经增加了博主的验证图标和评论等级图标。只要在本站回复数超过3个,就会显示Vip1的标记。而且博主验证也很酷啊!
参照了百度很多教程。一个是百度版本的,一个是修改版本的教程,修改版和鸟哥是一样的,这里我先奉上百度得来的教程。
教程如下
首先上一个图演示:
添加functions.php代码
打开主题的functions.php,添加以下代码:
- /**
- * WordPress 添加评论之星
- */
- 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' "));
- /*如果不需要管理员显示VIP标签,就把下面一行的 // 去掉*/
- // $adminEmail = get_option('admin_email');if($comment_author_email ==$adminEmail) return;
- if($author_count>=10 && $author_count<20)
- echo '<a class="vip1" title="评论达人 LV.1"></a>';
- else if($author_count>=20 && $author_count<40)
- echo '<a class="vip2" title="评论达人 LV.2"></a>';
- else if($author_count>=40 && $author_count<80)
- echo '<a class="vip3" title="评论达人 LV.3"></a>';
- else if($author_count>=80 && $author_count<160)
- echo '<a class="vip4" title="评论达人 LV.4"></a>';
- else if($author_count>=160 && $author_count<320)
- echo '<a class="vip5" title="评论达人 LV.5"></a>';
- else if($author_count>=320 && $author_count<640)
- echo '<a class="vip6" title="评论达人 LV.6"></a>';
- else if($author_count>=640)
- echo '<a class="vip7" title="评论达人 LV.7"></a>'; }
- ?>
原理是根据评论人的Email,查询他的评论数量,来判断对应的VIP等级,这个代码很多地方可以定制的,比如样式可以自己定义,也可以设置所达到等级需要的评论数目。
调用函数
在适合的地方调用此函数,因为每个主题基本都不一样,所以需要大家找到你的主题调用评论的地方,一般在comments.php
里面,搜索
- <?php comment_author_link();?>
在后面加上
- <?php get_author_class($comment->comment_author_email,$comment->comment_author_url,$comment->user_id)?>
如果需要添加博主认证则,就用这段代码:
- <?php get_author_class($comment->comment_author_email,$comment->user_id)?>
- <?php if(user_can($comment->user_id, 1)){echo "<a title='博主认证' class='vip'></a>";}; ?>
增加CSS样式
在style.css
中加上以下代码,并把vip.png上传到主题的images目录下,就大功告成了!
注意修改CSS图片的目录
- /**博客VIP评论样式**/
- .vp,.vip,.vip1,.vip2,.vip3,.vip4,.vip5,.vip6,.vip7{background: url(images/vip.png) no-repeat;display: inline-block;overflow: hidden;border: none;}
- .vp{background-position:-515px -3px;width: 14px;height: 14px;margin-bottom: -2px;}
- .vip{background-position:-495px -2px;width: 15px;height: 16px;margin-bottom: -3px;}
- .vip1{background-position:-1px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
- .vip2{background-position:-63px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
- .vip3{background-position:-144px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
- .vip4{background-position:-227px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
- .vip5{background-position:-331px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
- .vip6{background-position:-441px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
- .vip7{background-position:-611px -2px;width: 46px;height: 14px;margin-bottom: -1px;}
使用以上代码我遇到的问题
使用上面的代码我遇到了一个问题就是我在comments.php
里面根本找不到
<?php comment_author_link();?>
这段代码,只找到了这段代码。
- <ol class="comment-list">
- <?php wp_list_comments( 'type=comment&callback=mytheme_comment' ); ?>
- </ol><!-- .comment-list -->
于是到百度搜索到了张戈博客的这篇文章:
WordPress显示访客UA信息:Show UserAgent纯代码轻度汉化版
参照这篇文章,我去functions.php找函数还是没找到,
我找到了comment-template.php这个文件,然后在这个里面找到了这段代码:
- <strong><?php commentauthor(); ?></strong>
然后把上面的调用代码添加到这段代码后面就OK了!
如图:
下面是知更鸟样式
鸟哥的没有博主认证和博主等级显示,我这里添加了,如图:
添加functions.php代码
打开主题的functions.php,添加以下代码:
- /**
- * WordPress 添加评论之星
- */
- 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' "));
- /*如果不需要管理员显示VIP标签,就把下面一行的 // 去掉*/
- // $adminEmail = get_option('admin_email');if($comment_author_email ==$adminEmail) return;
- if($author_count>=10 && $author_count<20)
- echo '<a class="vip1" title="评论达人 LV.1"><i class="fa fa-vimeo-square"></i><span class="lv">1</span></a>';
- else if($author_count>=20 && $author_count<40)
- echo '<a class="vip2" title="评论达人 LV.2"><i class="fa fa-vimeo-square"></i><span class="lv">2</span></a>';
- else if($author_count>=40 && $author_count<80)
- echo '<a class="vip3" title="评论达人 LV.3"><i class="fa fa-vimeo-square"></i><span class="lv">3</span></a>';
- else if($author_count>=80 && $author_count<160)
- echo '<a class="vip4" title="评论达人 LV.4"><i class="fa fa-vimeo-square"></i><span class="lv">4</span></a>';
- else if($author_count>=160 && $author_count<320)
- echo '<a class="vip5" title="评论达人 LV.5"><i class="fa fa-vimeo-square"></i><span class="lv">5</span></a>';
- else if($author_count>=320 && $author_count<640)
- echo '<a class="vip6" title="评论达人 LV.6"><i class="fa fa-vimeo-square"></i><span class="lv">6</span></a>';
- else if($author_count>=640)
- echo '<a class="vip7" title="评论达人 LV.7"><i class="fa fa-vimeo-square"></i><span class="lv">7</span></a>';
- }
- ?>
使用下面的CSS样式:
- /*VIP评论之星*/
- .comment-author .fa {
- color:#d03333;
- padding-left:5px
- }
- .lv {
- font-size:13px;
- color:#999;
- padding-left:3px
- }
- .vip1 .fa {
- color:#46c0e6
- }
- .vip2 .fa {
- color:#f49800
- }
- .vip3 .fa {
- color:#7ab951
- }
- .vip4 .fa {
- color:#f566f5
- }
- .vip5 .fa {
- color:#d03333
- }
- .vip6 .fa {
- color:#d03333
- }
- .vip7 .fa {
- color:#d03333
- }
然后把调用代码改成这样
- <?php get_author_class($comment->comment_author_email,$comment->user_id)?>
- <?php if(user_can($comment->user_id, 1)){echo "<a title='博主认证' ><i class='fa fa-check-square'></i></a>";}; ?>
OK完毕。
如果不想要博主认证和VIP显示,调用的时候就只添加下面这段代码:
- <?php get_author_class($comment->comment_author_email,$comment->comment_author_url,$comment->user_id)?>
广西南宁市 3F
修改版比较好,我的都是直接用文字代替
地球人 B1
@ 懿古今 对啊,减少加载。
广东省深圳市宝安区 2F
改天给自己的博客弄一个试试看
地球人 B1
@ 侯雨辰博客 完全可以
地球人 1F
不知道大家看懂没有。
写的我自己都晕了。。 