最近网站开始有垃圾评论了,大多还都是全英文的,十分头疼,查阅资料,现在找到解决办法,与遇到同样问题的各位博主分享一下,实现原理:判断评论内容是否包含汉字,如果一个汉字都没有,则给出错误提示,评论无法提交,这样垃圾评论也没有存储到数据库中,达到了屏蔽英文垃圾评论的目的。
简单方法一:修改主题文件
找到你当前使用的主题目录下的functions.php,将第一个 <?php
替换为:
function scp_comment_post( $incoming_comment ) {
$pattern = ’/[一-龥]/u’;
// 禁止全英文评论
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
wp_die( ”You should type some Chinese word (like \”你好\”) in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!” );
}
return( $incoming_comment );
}
add_filter(‘preprocess_comment’, ’scp_comment_post’);
这样不会受到的WordPress升级的影响, 最后以 UTF-8 编码将functions.php另存为,而不是直接点保存,覆盖原来的functions.php文件(否则你的博客评论会出错),上传到你的博客空间,一切OK!
比较笨的方法:修改源文件
这样的话优点可以适用多个主题,但是程序升级的话,必须再次修改。打开WordPress安装目录下的wp-comments-post.php
文件,
找到代码:
替换为:
if(!preg_match($pattern, $comment_content)) {
wp_die( ”You should type some Chinese word (like \”你好\”) in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!” );
}
// If the user is logged in