WordPress评论中禁止或者必须包含指定内容

1638704614 20211205114334 61aca5e600266

这篇是上篇《非插件实现拦截无中文留言》的进阶

以下代码不允许评论中<a 随便 href=” 或者rel=”nofollow”或者http://

  1. function lianyue_comment_post( $incoming_comment ) {  
  2. $http = ‘/[href=“|rel=”nofollow“|http:\/\/|<\/a>]/u’; 
  3. if(preg_match($http, $incoming_comment[‘comment_content’])) { 
  4. wp_die( “万恶的发贴机!” );  
  5. }  
  6. return$incoming_comment );  
  7. }  
  8. add_filter(‘preprocess_comment’, ‘lianyue_comment_post’);  

你也可以换成自己的代码也可以添加其他的代码

也可以设置成必须包含指定字符如下面:

  1. function lianyue_comment_post( $incoming_comment ) {  
  2. $pattern = ‘/[一-龥]/u’;  
  3. // 禁止全英文评论  
  4. if(!preg_match($pattern$incoming_comment[‘comment_content’])) {  
  5. wp_die( “您的评论中必须包含汉字!” );  
  6. }  
  7. return$incoming_comment );  
  8. }  
  9. add_filter(‘preprocess_comment’, ‘lianyue_comment_post’);  

以上面的是必须包含中文字符也可以改成自己的字符

两个一起的代码必须包含中文字符和不准包含指定字符的代码

  1. function lianyue_comment_post( $incoming_comment ) {  
  2. $pattern = ‘/[一-龥]/u’;  
  3. $http = ‘/[href=“|rel=”nofollow“|http:\/\/|<\/a>]/u’; 
  4. // 禁止全英文评论 
  5. if(!preg_match($pattern, $incoming_comment[‘comment_content’])) { 
  6. wp_die( “您的评论中必须包含汉字!” ); 
  7. }elseif(preg_match($http, $incoming_comment[‘comment_content’])) { 
  8. wp_die( “万恶的发贴机!” );  
  9. }  
  10. return$incoming_comment );  
  11. }  
  12. add_filter(‘preprocess_comment’, ‘lianyue_comment_post’);  

另外主题如果使用了ajax评论,提示错误时可能会出现布局混乱,解决办法:

打开comments-ajax.php找到最后个err( __(并

在下一行增加:

这是必须包含中文的

  1. $pattern = ‘/[一-龥]/u’;  
  2. if (!preg_match($pattern,$comment_content) )  
  3. err( __(‘您的评论中必须包含汉字!’) );  

这是禁止包含的内容

  1. $http = ‘/[href=“|rel=”nofollow”|http:\/\/|<\/a>]/u’;  
  2. if (preg_match($http,$comment_content) )  
  3. err( __(‘万恶的发贴机!’) );  
Posted in 外贸建站教程.