> WordPress中文手册 > wordpress过滤垃圾评论终极解决办法

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

  • 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文件中
function check_comment_data( $commnet_data ) {
    
	$pattern = "/[\x7f-\xff]/";
    // 禁止非中文
    if(!preg_match($pattern, $commnet_data['comment_content'])) {
		$str = "您的评论中必须包含汉字!";
		//异步提交评论表单
		
		wp_die ( __( $str  ) );
               //wordpress默认错误提示页面
		//wp_die( $str );
    }
         // 禁止含有链接的评论
	if(strpos($commnet_data['comment_content'],'Http://') !== false || strpos($commnet_data['comment_content'],'<a') !== false)
	{
	$str = "您的评论中不能包含链接!";
		//异步提交评论表单
		
		wp_die ( __( $str  ) );
	}
	
    return $commnet_data;
}
add_filter('preprocess_comment', 'check_comment_data');

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