如果主题自定义了评论模板,即在评论输出的时候使用回调函数来做的,这种情况使用纯代码增加评论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 )
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以下的评论不显示评论者链接。
大神,怎么用钩子来实现第三步和第四步呢?谢谢
能帮忙整理一份第3和第4步的教程发我邮箱吗?
虽然有点过份,但真心想要!
因为我试过好几种办法,都没成功。
谢谢!
不用了,已自己搞定了。。。。
你钩子怎么实现的我dux也是钩子
感谢大佬教程