今天闲着没事便将自己网站的评论区稍作了些修改,这次主要修改的内容是在评论者旁边添加了VIP星级标识以及博主认证标识,其中VIP星级标识是根据评论数量来进行评级的,下面我就将这次修改的主要内容整理如下,有需要这方面功能的朋友可以了解一下。下面是我修改后的样式:
这次修改的文件主要是DUX主题的functions.php、main.css与mo_comments_list.php文件,为了防止修改过程中产生的一些错误,建议大家在修改文件之前把这几个文件备份一下。
添加星级图片文件
在修改主题文件前,希望大家先把所需要的图片文件上传至主题目录的img文件夹下,或者你也可以上传到其他文件夹下,不过要记住文件的路径,后面要用到。
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>=1 && $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>'; }
mo_comments_list.php文件
mo_comments_list.php文件是DUX主题评论区的核心文件,其他主题修改的话可能需要修改主题文件夹下的comments.php文件,具体请询问主题开发者。对于DUX主题,使用查找工具在mo_comments_list.php文件中找到如下语句:
echo '<div class="comt-meta"><span class="comt-author">'.get_comment_author_link().'</span>';
具体位置应该是在文件的第57行处,找到后在文件的第58行末尾添加如下语句:
get_author_class($comment->comment_author_email,$comment->user_id); if($comment->user_id == 1){echo " <a title='博主' class='vip'></a> ";};
添加完成后第58行的完整代码应为:
echo _get_time_ago($comment->comment_date); get_author_class($comment->comment_author_email,$comment->user_id); if($comment->user_id == 1){echo " <a title='博主' class='vip'></a> ";};
main.css文件修改
由于DUX主题没有调用style.css文件,所以如果我们按照其他教程将CSS样式添加到主题文件夹下的style.css文件里是无法调用CSS样式的,你需要将下面的代码添加到主题设置的“自定义CSS样式”代码框中或者是主题的main.css文件才可以执行。
/*VIP评论之星*/ .vp,.vip,.vip1,.vip2,.vip3,.vip4,.vip5,.vip6,.vip7{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;}
需要注意的是,上面代码中的url参数对于不同的主题可能需要进行相应的变动。当然,对于DUX主题的main.css文件,保持../img/vip.png不变即可。
评论 (6)
报错了 博主 页面顶部显示mment_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’ “)); $adminEmail = get_option(‘admin_email’);if($comment_author_email ==$adminEmail) return; if($author_count>=1 && $author_count=20 && $author_count=40 && $author_count=80 && $author_count=160 && $author_count=320 && $author_count=640) echo ”; }
functions.php 那段代码配置有问题,仔细检查下。
测试看看有没有图标
更新 DUX5.0 之后好像没有重新添加这个功能,所以应该看不到图标。
想问一下,游客评论也能计算等级吗?还是就只能登入后。
第一次评论,有显示星级吗?
应该是需要登录吧,记得好像有写入数据库来着,忘了。