据观察,WordPress 主题的博客中,大部分的垃圾评论都是全英文评论或者和含有日文字符的评论。
如果能够禁止这些评论的提交,也就基本上达到了 WordPress 主题防止垃圾评论的目的了。
那么,有什么办法可以让WordPress屏蔽纯英文评论?
这里就记录一种无插件纯代码实现禁止 WordPress 纯外文垃圾评论的方法,只需要把所需的代码复制到当前主题的 functions.php 文件最后一个 ?> 的前面即可。
温馨提示:如果主题更新,别忘了把代码也重新添加一遍···
1、禁止全英文或者日文的评论
- // 屏蔽纯英文评论和纯日文
- 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’);
2、禁止全英文、日文、俄文、韩文、阿拉伯文、泰文的评论
- // 禁止全英日俄韩阿泰语评论
- function ssdax_comment_all_post( $incoming_comment ){
- $enpattern =‘/[一-龥] /u’;
- $jpattern =‘/[ぁ-ん] +|[ァ-ヴ] +/u’;
- $ruattern =‘/[А-я] +/u’;
- $krattern =‘/[갂-줎] +|[줐-쥯] +|[쥱-짛] +|[짞-쪧] +|[쪨-쬊] +|[쬋-쭬] +|[쵡-힝] +/u’;
- $arattern =‘/[؟-ض] +|[ط-ل] +|[م-م] +/u’;
- $thattern =‘/[ก-๛] +/u’;
- if(!preg_match($enpattern, $incoming_comment[‘comment_content’])){
- err(“写点汉字吧,博主外语很捉急! Please write some chinese words!”);
- }
- if(preg_match($jpattern, $incoming_comment[‘comment_content’])){
- err(“日文禁止!Japanese Get out!日本語出て行け!”);
- }
- if(preg_match($ruattern, $incoming_comment[‘comment_content’])){
- err(“禁止语种!Russians, get away!Savage выйти из Русского Севера!”);
- }
- if(preg_match($krattern, $incoming_comment[‘comment_content’])){
- err(“思密达的世界你永远不懂!Please do not use Korean!하시기 바랍니다 한국 / 한국어 사용하지 마십시오!”);
- }
- if(preg_match($arattern, $incoming_comment[‘comment_content’])){
- err(“禁止使用阿拉伯语!Please do not use Arabic!!من فضلك لا تستخدم اللغة العربية”);
- }
- if(preg_match($thattern, $incoming_comment[‘comment_content’])){
- err(“禁止泰语!Please do not use Thai!กรุณาอย่าใช้ภาษาไทย!”);
- }
- return( $incoming_comment );
- }
- add_filter(‘preprocess_comment’,‘ssdax_comment_all_post’);
3、禁止评论内容带有链接
- //禁止发链接
- function wp_comment_post( $incoming_comment ){
- $http =‘/[href=”|rel=”nofollow”|http:\/\/|<\/a>] /u’;
- if(preg_match($http, $incoming_comment[‘comment_content’])){
- err(“本站禁止发链接地址!”);
- }
- return( $incoming_comment );
- }
- add_filter(‘preprocess_comment’,‘wp_comment_post’);