运维社区最开始的时候开启了评论,由于是使用的是积分制。部分童鞋为了获取积分,经常在评论中使用毫无意义的评论。使用纯数字、纯英文还有一些日文字符。每天都需要在后台删除一堆毫无意义的垃圾评论。后来就开启了评论审核,但是那些评论也已经写入了数据库。
WordPress 大家用过都知道可以使用插件来解决,但是我有不想安装太多的插件。先找到一段代码不用安装插件就可以解决这一问题,现分享给大家。这段代码在在评论提交前就已经阻止其提交所以不会写入数据库。
我使用的是B2主题,我添加的位置是子主题的「functions.php」中,如果你使用的是其他主题可以把以下代码添加到你主题的「functions.php」下然后测试下;
//屏蔽纯英文评论和纯日文 function refused_english_comments($incoming_comment) { $pattern = '/[一-龥]/u'; // 禁止全英文评论 if(!preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( "您的评论中必须包含汉字!" ); } $pattern = '/[あ-んア-ン]/u'; // 禁止日文评论 if(preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( "评论禁止包含日文!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'refused_english_comments');