wordpress过滤垃圾评论终极解决办法


你如果使用wordpress建站一段时间后,登陆后台久会看到大量的呆审核评论,不要高兴,点进去看下,估计大部分是英文跟日文,这些评论都是由机器发出的而且都带了大量的链接。如下图所示:
ordpress过滤垃圾评论代码
本站前面介绍了过滤垃圾评论的方法:

  • 1、wordpress屏蔽垃圾评论插件:Akismet
  • 2、wordpress过滤垃圾评论代码
  • 3、wordpress屏蔽大量英文垃圾评论插件:Some Chinese Please

即便做好了以上三步,还是无法从根本上解决垃圾评论的问题。今天wordpress教程网就为大家介绍如何从根源上去解决垃圾评论的问题,由于垃圾评论都是通过机器脚本发送对应的我们wordpress的评论提交文件为wp-comments-post.php,该文件位于站点根目录下,所以我们只要修改默认的评论文件名即可,如我改为my-wp-comments-post.php,当机器或脚本再提交垃圾评论后就无法找到该文件,成功屏蔽了垃圾评论。从应用效果来看,这个是目前最好屏蔽垃圾评论的方法。完整步骤如下:

  • 1、修改站点目录下wp-comments-post.php名为my-wp-comments-post.php
  • 2、修改当前使用主题的comments.php文件提交的评论地址为:my-wp-comments-post.php
  • 3、将以下过滤代码添加到你主题的functions.php文件中
  1. function check_comment_data( $commnet_data ) {
  2. $pattern = "/[\x7f-\xff]/";
  3. // 禁止非中文
  4. if(!preg_match($pattern, $commnet_data['comment_content'])) {
  5. $str = "您的评论中必须包含汉字!";
  6. //异步提交评论表单
  7. wp_die ( __( $str ) );
  8. //wordpress默认错误提示页面
  9. //wp_die( $str );
  10. }
  11. // 禁止含有链接的评论
  12. if(strpos($commnet_data['comment_content'],'http://') !== false || strpos($commnet_data['comment_content'],'<a') !== false)
  13. {
  14. $str = "您的评论中不能包含链接!";
  15. //异步提交评论表单
  16. wp_die ( __( $str ) );
  17. }
  18. return $commnet_data;
  19. }
  20. add_filter('preprocess_comment', 'check_comment_data');

注:wordpress升级时重复以上步骤。