做 wordpress 博客时间长了,总有发帖软件来骚扰,时不时的给你发一组 4 个全英文评论,而且专门挑一篇文章评论。虽然启用了评论审核机制,但是手机总响起垃圾评论提示也让魏艾斯博客很烦。对于这种现象,有两种解决思路:一个是安装评论过滤插件;另一个是用代码实现。
类似上面这种全英文评论太多了,必须要想办法能在发评论之前就给他过滤掉。
搜索了一下,网络上常用的wordpress 屏蔽英文垃圾评论插件有以下这些:
Akismet Some Chinese Please wp-itluren-comment-filter 验证码插件:SI CAPTCHA Anti-Spam 使用验证码过滤评论也是一种不错的方法,但是不太利于用户体验。 评论滑动解锁插件:myQaptcha
我们想既达到目的又不要增加服务器负担。所以使用了常见的代码形式。
第一、需要内容带有中文、不能是日文
// 评论中需要有中文 itbulu.com function wp_refused_spam_comments($comment_data) { $pattern = ‘/[一-龥]/u’; $jpattern = ‘/[ぁ-ん]+|[ァ-ヴ]+/u’; if (!preg_match($pattern, $comment_data[‘comment_content’])) { err(__(‘评论中需要有一个汉字!’)); } if (preg_match($jpattern, $comment_data[‘comment_content’])) { err(__(‘不能有日文!’)); } return ($comment_data); } add_filter(‘preprocess_comment’, ‘wp_refused_spam_comments’);
禁止全英文或者日文评论,基本能限制全英文发帖机器,长期效果待测试。
第二、禁止评论内容带有链接
//禁止发链接 itbulu.com function wp_comment_post( $incoming_comment ) { $https = ‘/[href=”|rel=”nofollow”|https:\/\/|<\/a>]/u’; if(preg_match($https, $incoming_comment[‘comment_content’])) { err( “禁止发链接地址!” ); } return( $incoming_comment ); } add_filter(‘preprocess_comment’, ‘wp_comment_post’);
将两处代码添加到当前主题 functions.php 最后面,可以在一定程度上过滤到大部分全英文垃圾评论和评论中的链接。
另外上面代码对一部分 wordpress 模板可能无效,如果出现类似情况,把代码中的 err 替换为 wp_die 即可。
希望大家的 wordpress 博客都能够过滤掉恼人的垃圾评论。如果你有更好更合适的办法,欢迎在下面留言分享!