WordPress非插件纯代码实现彻底屏蔽站点垃圾评论

不知道是从哪里来的垃圾评论,可能是谷歌来的吧,天天给我评论英文、俄文、乱七八糟的语言,本博客不但有邮件提醒还有Server 酱的提醒,到处都提醒,所以很烦的。今天我要干掉一部分垃圾评论

1.  在WordPress后台“设置” > “讨论” > 评论黑名单中添加相应的垃圾评论关键词即可。如在黑名单中添加“信用卡”,那么当评论的内容、评论者名称、URL、电子邮件或IP地址中包含其中任何关键字(如信用卡)时,系统将会禁止提交到数据库。

WordPress讨论黑名单
WordPress讨论黑名单

但是即使这样Server酱依旧会给推送,不过站点评论已经在回收站里面了。

2. 直接代码处理,将以下代码放到当前主题的functions.php文件最后一个?>的前面

原代码中使用的 err 经过实测反馈,WordPress中并没有err这个函数,我还是使用wp_die吧,如果你使用报错可以换回err

屏蔽英文垃圾评论以及日语垃圾评论

//禁止全英文和日文评论
function syz_comment_post( $incoming_comment ) {
$pattern = '/[一-龥]/u';
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
wp_die( "写点汉字吧,博主外语很捉急! Please write some chinese words!" );
}
if(preg_match($jpattern, $incoming_comment['comment_content'])){
wp_die( "日文滚粗!Japanese Get out!日本語出て行け!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'syz_comment_post');

单独屏蔽日语垃圾评论

//禁止屏蔽日语垃圾评论
function syz_comment_jp_post( $incoming_comment ) {
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
if(preg_match($jpattern, $incoming_comment['comment_content'])){
wp_die( "日文滚粗!Japanese Get out!日本語出て行け!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'syz_comment_jp_post');

屏蔽俄语垃圾评论

//禁止屏蔽俄语垃圾评论
function syz_comment_ru_post( $incoming_comment ) {
$ruattern ='/[А-я]+/u';
if(preg_match($ruattern, $incoming_comment['comment_content'])){
wp_die( "北方野人讲的话我们不欢迎!Russians, get away!Savage выйти из Русского Севера!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'syz_comment_ru_post');

屏蔽阿拉伯语垃圾评论

//禁止屏蔽阿拉伯语垃圾评论
function syz_comment_ar_post( $incoming_comment ) {
$arattern ='/[؟-ض]+|[ط-ل]+|[م-م]+/u';
if(preg_match($arattern, $incoming_comment['comment_content'])){
wp_die( "不要用阿拉伯语!Please do not use Arabic!!من فضلك لا تستخدم اللغة العربية" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'syz_comment_ar_post');

屏蔽泰语垃圾评论

//禁止屏蔽泰语垃圾评论
function syz_comment_th_post( $incoming_comment ) {
$thattern ='/[ก-๛]+/u';
if(preg_match($thattern, $incoming_comment['comment_content'])){
wp_die( "人妖你好,人妖再见!Please do not use Thai!กรุณาอย่าใช้ภาษาไทย!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'syz_comment_th_post');

我直接选择全部屏蔽!

//WordPress 站点纯代码屏蔽垃圾评论
function syz_comment_post( $incoming_comment ) {
$pattern = '/[一-龥]/u';
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
$ruattern ='/[А-я]+/u';
$arattern ='/[؟-ض]+|[ط-ل]+|[م-م]+/u';
$thattern ='/[ก-๛]+/u';
if(preg_match($jpattern, $incoming_comment['comment_content'])){
wp_die( "日文滚粗!Japanese Get out!日本語出て行け!" );
}
if(preg_match($ruattern, $incoming_comment['comment_content'])){
wp_die( "北方野人讲的话我们不欢迎!Russians, get away!Savage выйти из Русского Севера!" );
}
if(preg_match($arattern, $incoming_comment['comment_content'])){
wp_die( "不要用阿拉伯语!Please do not use Arabic!!من فضلك لا تستخدم اللغة العربية" );
}
if(preg_match($thattern, $incoming_comment['comment_content'])){
wp_die( "人妖你好,人妖再见!Please do not use Thai!กรุณาอย่าใช้ภาษาไทย!" );
}
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
wp_die( "写点汉字吧,博主外语很捉急! Please write some chinese words!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'syz_comment_post');

3. 针对那些使用技术手段,比如GET、POST等方式不填写前台表单,直接读取后台程序文件的spam,只有屏蔽IP才能缓解疯狗一样的攻势,其它什么验证码、滑动解锁等等都没用。

26 条评论

发表评论

*