相信许多WordPress用户都深受垃圾评论的困扰,即使用了Akismet防Spam插件每天依然有成百上千条垃圾评论出现,这些垃圾评论排版混乱,严重影响了WordPress博客的质量并且会给博客真正的读者留下不好的印象。虽然有些朋友会说WordPress自带有评论审核功能,但上百条垃圾评论中还夹杂着你的读者留下的评论,有时候很难一眼就分辨出来,你还需要一条一条看一下,这样会花费你大量时间精力。
为了为站长朋友们分忧,必盛互联为大家总结了几种方便有效的防Spam的方法。
安装评论验证插件
许多垃圾评论都是机器人群发的,之所以其数量如此庞大,很大一部分原因在于WordPress发表评论无需填写验证码。所以要想阻止这些机器群发的垃圾评论,最好的方法就是安装带有评论验证功能的插件。常用的评论验证插件由SI CAPTCHA Anti-Spam、reCAPTCHA、Math Comment Spam Protection等,这几款评论验证插件都比较受欢迎,既可以字母验证,也可以根据算数问题来验证。当发表评论需要手动输入验证码之后,你会发现垃圾评论明显少许多。
设置评论审核和黑名单关键词
在WordPress仪表盘中点击 设置 > 讨论,你会看到如下界面。
你可以看到在评论审核和评论黑名单两处都可以设置一些关键词。如果在评论审核中设置关键词,那么当评论的内容、评论者名称、URL、电子邮件或IP地址中包含其中任何关键词时,系统都将自动将这些评论放入待审评论,而如果你在评论黑名单中设置关键词,那么当评论包含这些关键词时系统会自动将这些评论列为垃圾评论。
计算前端处理时间
可以通过时间戳来判断是否为垃圾评论,也就是说开始评论和提交评论之间的时间在某个可能值之上才能算作非垃圾评论。当然,如果对方设置定时发送的话还是不能阻止垃圾评论,所以可以和许多站长朋友热爱的小墙工具结合起来用,这样防Spam的效果会更好。说到小强工具,其实就是将一段代码插入到function.php文件中,便能实现屏蔽垃圾评论的功能。具体代码如下,供有需要的朋友拷贝。
class anti_spam {
//建立
function anti_spam() {
if ( !current_user_can(“level_0”) ) {
add_action(“template_redirect”, array($this, “w_tb”), 1);
add_action(“init”, array($this, “gate”), 1);
add_action(“preprocess_comment”, array($this, “sink”), 1);
}
}
//设置
function w_tb() {
if ( is_singular() ) {
ob_start(create_function(“$input”,”return preg_replace(“#textarea(.*?)name=([“”])comment([“”])(.+)/textarea>#”,
“textarea$1name=$2wall$3$4/textarea><textarea name=”comment” cols=”50″ rows=”4″ style=”display:none”></textarea>”,$input);”) );
}
}
//检查
function gate() {
( !empty($_POST[“wall”]) && empty($_POST[“comment”]) ) ? $_POST[“comment”] = $_POST[“wall”] : $_POST[“spam_confirmed”] = 1;
}
//处理
function sink( $comment ) {
if ( !empty($_POST[“spam_confirmed”]) ) {
//方法一:直接挡掉, 将 die(); 前面两斜线刪除即可.
//die();
//方法二:标记为spam, 留在资料库检查是否误判.
//add_filter(“pre_comment_approved”, create_function(“”, “return “spam”;”));
/*
$is_ping = in_array( $comment[“comment_type”], array(“pingback”, “trackback”) );
$comment[“comment_content”] = ( $is_ping ) ?
“◎ 这是 Pingback/Trackback,可能是 Spam!
” . $comment[“comment_content”] :
“[ 可能是Spam! ]
” . $comment[“comment_content”];
*/
// MG12 的处理方法
$is_ping = in_array( $comment[“comment_type”], array(“pingback”, “trackback”) );
if(!$is_ping) {
die();
}
}
return $comment;
}
}
$anti_spam = new anti_spam();
登录后发表评论
你可以安装一些插件(例如WordPress连接微博)方便读者通过QQ空间、新浪微博、人人网等社交账号登录,并且在登录后才能对博客发表评论,不要担心这样会给读者带来麻烦,其实现在大部分读者都是几个社交账号同时在线,评论时只需轻轻一点“授权”便能对你的博客发布评论了,你还可以通过微博等社交网站来进一步了解你的读者。