乌云博客
专注互联网三十年

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

以下代码不允许评论中<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( __(‘万恶的发贴机!’) );
分享到:更多 ()