wordpress阻止垃圾评论写入

WP是有评论黑名单与反AD插件的,效果也不错,但我这人有些小洁癖,不喜欢垃圾评论占用空间与ID号,故经过一天的研究(其实不懂技术,只是瞎折腾),找出一个较极端的方法。
经过观察,所有垃圾评论内容虽然没有规律可找,但都会在网址栏填上自己的网址,故只要禁用网址栏,就可以让那些发贴机无功而返。经测试,本方法真实有效。

优点:
1、可以阻止垃圾评论写入数据库,从源头上拒绝垃圾评论,
2、不需要再安装其它反AD插件,不会影响博客的运行速度;
3、本功能绿色安全,不涉及数据库,随时可以恢复原状;

缺点:
1、修改代码对部分人可能比较麻烦,每次程序升级后都需要重新修改;
2、禁止了网址栏会影响到一些互动性的功能。

总结:本方法适合于那些有小洁癖的朋友。

具体方法如下:
1、修改根目录的wp-comments-post.php,增加红色部分:

if ( 0 < strlen($comment_author_url) )
wp_die( __(‘Sorry, this site ban ads.’) );

if ( preg_match(“/</”, $comment_content) )
wp_die( __(‘Please do not enter the code.’) );

if ( ” == $comment_content )
wp_die( __(‘Error: please type a comment.’) );

2、为了避免普通用户无法评论,请修改主题里的comments.php,增加红色部分:

<!- -
<p><input type=”text” name=”url” id=”url” value=”<?php echo $comment_author_url; ?>” size=”22″ tabindex=”3″ />
<label for=”url”><small>网址</small></label></p>      //部分未汉化的主题网址可能为WebSite
- ->

对于那些很需要网址栏的朋友,有一个优化方案。
第一步骤(wp-comments-post.php)只需要将原红字改成现红字:

if ( preg_match(“/http/”, $comment) )
wp_die( __(‘Please do not enter the code.’) );

第二步骤(comments.php)是只需要加下面的红字,不需要加原红字:

<label for=”url”><small>网址(不需要加http)</small></label></p>

如有更好的办法,欢迎大家提出。

补充:我们都知道WORDPRESS后台“评论选项”里有一个“评论黑名单”,只要在里面加上“url、link、href”等关键字在一定程序上也能防止垃圾评论。

相关日志(更多请点标签)

评论