今天在更新博客到wordpress 3.2.2的时候,又测试了一把自己的评论系统。因为我修改了默认的评论,所以每次更新都要做一番测试,确保评论以及邮件通知全部工作正常。
结合平时过滤到的垃圾广告,我发现,所有过滤到的垃圾广告都在作者的主页(URL)参数上带有推广的链接,而我已经在评论页面中隐藏了URL地址的输入框,这样就保证正常用户是无法提交URL到后台的,如果提交的时候带有URL地址,那么就可以肯定的认为,这绝对是一个刷评论的软件。
在这次更新之前,我都是使用wordpress自带的规则,只要在作者的主页(URL)或者评论内容中带有URL地址,那么一律需要审核,这样可以杜绝垃圾评论的显示,但是垃圾评论还是会进入到后台的,每天都需要清理很多。
现在我们可以修改一下代码,只要发现在提交的时候,有带URL参数,那么直接屏蔽,不再处理该评论请求,直接丢弃。
- 第一步当然是隐藏URL的输入框了。可以通过CSS或者直接修改代码实现,这里就不详细介绍了,比较简单。
- 检查表单中的URL参数,如果发现URL参数已经设置,那么直接丢弃该评论123456789101112//我们需要修改wp-comments-post.php文件$comment_author = ( isset($_POST[‘author’]) ) ? trim(strip_tags($_POST[‘author’])) : null;$comment_author_email = ( isset($_POST[’email’]) ) ? trim($_POST[’email’]) : null;$comment_author_url = ( isset($_POST[‘url’]) ) ? trim($_POST[‘url’]) : null;$comment_content = ( isset($_POST[‘comment’]) ) ? trim($_POST[‘comment’]) : null;//以上为取得提交表单的数据//如果发现有提交URL参数,那么直接提示为广告机器人,丢弃评论,不再做进一步处理if (!empty($comment_author_url)) wp_die(__(‘You are a spam robots!’));//下面进入正常的处理流程// If the user is logged in$user = wp_get_current_user();