wordpress垃圾评论对策

实在忍受不了wordpress每天大量英文垃圾评论的轰炸,基本上毫无对策,网上有很多防御办法,什么修改评论文件位置,文件名,随机字段名称,甚至包括验证码都有人测试没用。今天决定尝试我的码农办法,直接判断中文数如果比英文数少就直接标记为垃圾评论,只需要修改一个文件就可以了:

打开文件:

wp-includes/comments.php

 

定位到#2101行:
 

  $data = wp_unslash( $commentdata );

在其后面添加如下代码即可:


//ahuoo 如果中文比英文字母少 就不写入评论,认为是垃圾评论
$str = $data['comment_content'];
preg_match_all("/[0-9]{1}/",$str,$arrNum);//数字
preg_match_all("/[a-zA-Z]{1}/",$str,$arrAl);//字母
preg_match_all("/([\x{4e00}-\x{9fa5}]){1}/u",$str,$arrCh);//中文个数
if($arrCh[0]<=$arrAl[0]){ $data['comment_approved'] = 'spam'; }

发表评论

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

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>