记得刚开始建立 WordPress 博客的时候,无论在国内还是国外的空间主机上搭建的 WordPress 博客,无论 WordPress 有多少流量多么低的权重,垃圾评论都会自动找上门来,每天都能收到一大堆的垃圾评论,但是有不想设置启用登陆后才可以评论,不然访客每次留言都需要注册登陆,违背了当初做博客的初衷,作为一个博客程序,Wordpress 实际上也自带了一些简单的防止垃圾评论的设置,如果能够充分利用好这些功能,也能从 WordPress 程序本身达到一定的反垃圾评论效果了,但是这样远远不够偶尔还是出现了一个棋牌网站视频网站广告,忍无可忍的是居然用小说的内容来评论。
WordPress 垃圾评论数量多容易掩盖正常的读者评论,批量删除垃圾评论又容易造成误删,WordPress 垃圾评论发布机器持续不断地向网站提交评论请求,频率足够高的话则变演变成一种网站攻击,配置差一些的网站主机很有可能因此而运行缓慢,严重者造成服务器宕机,无法正常访问。WordPress 的垃圾评论的危害是不言而喻的,对付 WordPress 垃圾评论不仅要“阻断”垃圾评论的发布,更要提前“阻止”垃圾评论的提交,要让垃圾评论无处可藏,无机可趁。那么到底如何有效的防止垃圾评论呢?下面我把自己的实践经验和从网上学来的方法和大家分享,如果你正被博客的垃圾评论所困扰,可以参考文章的方法来解决。
这个插件在 wordpress 安装好之后就自带了,但是需要大家去自己申请一个 Akismet key 才可以使用,大家可以根据插件给出的链接地址去申请个人 key,这个插件对于个人使用时,可以免费的申请 key。
击 wordpress 后台的设置,讨论,其中就可以看到有评论审核和评论黑名单两个设置项,评论审核项“当某条评论包含超过 个超链接时,将其放入等待审队列。(垃圾评论通常含有许多超链接。)当评论的内容、评论者名称、URL、电子邮件或 IP 地址中包含其中任何关键字时,系统将自动把评论放入待审队列。在里面添加将要屏蔽的关键词,一行一个关键字或 IP 地址。WordPress 也会在词中匹配关键字,例如“press”亦将匹配“WordPress”。”
然后再去主题目录下找到 function.php,DUX 是 function_theme.php 文件,向里面添加如下代码:
/* 评论验证 */
function refused_spam_comments( $comment_data ) {
if( is_user_logged_in()){ return $comment_data;} //登录用户不验证
$pattern = '/[一-龥]/u'; //验证是否存在中文
if(!preg_match($pattern,$comment_data['comment_content'])) {
err('评论必须含中文!');
}
if( wp_blacklist_check($comment_data['comment_author'],$comment_data['comment_author_email'],$comment_data['comment_author_url'], $comment_data['comment_content'], $comment_data['comment_author_IP'], $comment_data['comment_agent'] )){
// header("Content-type: text/html; charset=utf-8");
err('你填写的某项信息或IP地址已被列入黑名单,无法进行评论,请文明评论!');
} else {
return $comment_data;
}
}
add_filter('preprocess_comment','refused_spam_comments');
比如说 Math Comment Spam Protection 或者 Some Chinese Please 等插件,或者产生一些随机码的插件来防止评论机器人的垃圾评论。因为就算是 Akismet 拦截住了垃圾评论,但是这些垃圾评论还是占用着数据库,这些垃圾评论还是进入了评论数据库,自己每次都是手动批量删除,特备是有大量垃圾评论的时候,就直接点击上面的全选,批量删除,这样很难说不会误伤个别被误判的非垃圾评论。所以安装插件也是不错的选择。这样直接杜绝了机器人的评论进入数据库,效果是很不错的。
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!