WordPress防范全英文垃圾评论的简单、有效方法!

都不知道从什么时候开始,我的博客就成了泮垃圾的天堂,每天都有上千条 全英文的垃圾评论。虽然装有Akismet,这里垃圾评论不会在前台显示,但有个突出的缺点是,这些洋垃圾评论仍然会写入数据库。以致数据库被这些全英文的垃圾评论暴到100多M。什么概念?几万条绝对有!现在我即时在后台评论处清空掉垃圾评论,等几十秒再刷新,就又会有几十条新的垃圾评论。这些机发的垃圾评论成了暴掉你网站空间流量和资源的直接杀手!

怎么可以简单地过滤掉这些垃圾评论呢?今晚找到了好方法,简单而有效。现在分享些大家:
只需修改你当前使用的主题目录下的functions.php就可以了,而且不会受到的WordPress升级的影响,实现原理与Some Chinese Please插件一样,只是少了一个后台而已。具体修改:打开当前使用的主题目录下的functions.php,在将第一个 <?php 替换成:

function scp_comment_post( $incoming_comment ) {
$pattern = ‘/[一-龥]/u’;
// 禁止全英文评论
if(!preg_match($pattern, $incoming_comment[‘comment_content’])) {
wp_die( “You should type some Chinese word (like \”你好\”) in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!” );
}
return( $incoming_comment );
}
add_filter(‘preprocess_comment’, ‘scp_comment_post’);

最后以 UTF-8 编码将functions.php另存为,而不是直接点保存,覆盖原来的functions.php文件(否则你的博客评论会出错),上传到你的博客空间,一切OK!更安全点的方法时直接在后台编辑主题functions.php文件,然后替换掉代码,保存就得。

这方法还有一个很突出的优点是,因为上面修改是针对主题的,即使以后程序上升,上述功能还不会失效。我修改好之后特意刷新了后台的评论查看,真的一条全英文的垃圾评论都没有了。以前隔十几秒就有十来条

打赏

2条评论

  • 求指点 2014年10月14日 回复

    functions.php文件已发到您的邮箱,麻烦您给予修正,谢谢!

    • 阿柯 2014年10月15日 回复 作者

      已改好,但我是用记事本打开修改的,怕会出错。你替换前最好先备份一下。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注