倡萌在《WordPress 如何有效拦截和过滤垃圾评论》已经分享了多种垃圾评论拦截方法,这篇文章是对那篇文章的方法的进阶。
评论中禁止包含指定内容
以下代码禁止许评论中包含 <a 随便 rel="nofollow noopener noreferrer" href=" 或者rel="nofollow"或者http:// ,你也可以根据自己的需要修改:
1 2 3 4 5 6 7 8 | function lianyue_comment_post( $incoming_comment ) { $http = '/[rel="nofollow noopener noreferrer" href="|rel="nofollow"|http:\/\/|<\/a>]/u'; if(preg_match($http, $incoming_comment['comment_content'])) { wp_die( "万恶的发贴机!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'lianyue_comment_post'); |
function lianyue_comment_post( $incoming_comment ) { $http = '/[rel="nofollow noopener noreferrer" href="|rel="nofollow"|http:\/\/|<\/a>]/u'; if(preg_match($http, $incoming_comment['comment_content'])) { wp_die( "万恶的发贴机!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'lianyue_comment_post');
评论中必须包含指定内容
比如下面的代码就是评论必须包含中文字符,你可以修改为自己指定的字符:
1 2 3 4 5 6 7 8 9 | function lianyue_comment_post( $incoming_comment ) { $pattern = '/[一-龥]/u'; // 禁止全英文评论 if(!preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( "您的评论中必须包含汉字!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'lianyue_comment_post'); |
function lianyue_comment_post( $incoming_comment ) { $pattern = '/[一-龥]/u'; // 禁止全英文评论 if(!preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( "您的评论中必须包含汉字!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'lianyue_comment_post');
评论中禁止或必须包含指定内容
这是上面两种方法的综合,评论必须包含中文字符,且禁止包含 <a 随便 rel="nofollow noopener noreferrer" href=" 或者rel="nofollow"或者http://
1 2 3 4 5 6 7 8 9 10 11 12 | function lianyue_comment_post( $incoming_comment ) { $pattern = '/[一-龥]/u'; $http = '/[rel="nofollow noopener noreferrer" href="|rel="nofollow"|http:\/\/|<\/a>]/u'; // 禁止全英文评论 if(!preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( "您的评论中必须包含汉字!" ); }elseif(preg_match($http, $incoming_comment['comment_content'])) { wp_die( "万恶的发贴机!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'lianyue_comment_post'); |
function lianyue_comment_post( $incoming_comment ) { $pattern = '/[一-龥]/u'; $http = '/[rel="nofollow noopener noreferrer" href="|rel="nofollow"|http:\/\/|<\/a>]/u'; // 禁止全英文评论 if(!preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( "您的评论中必须包含汉字!" ); }elseif(preg_match($http, $incoming_comment['comment_content'])) { wp_die( "万恶的发贴机!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'lianyue_comment_post');
修复ajax评论使用本代码出现的错位
如果你的主题使用ajax评论,使用上面的代码后,可能在提示错误信息的时候,网站会错位,你可以打开 comments-ajax.php ,找到最后个err( __(并且跳过该行,在下一行增加:
这是禁止包含的内容
1 2 3 | $http = '/[rel="nofollow noopener noreferrer" href="|rel="nofollow"|http:\/\/|<\/a>]/u'; if (preg_match($http,$comment_content) ) err( __('万恶的发贴机!') ); |
$http = '/[rel="nofollow noopener noreferrer" href="|rel="nofollow"|http:\/\/|<\/a>]/u'; if (preg_match($http,$comment_content) ) err( __('万恶的发贴机!') );
这是必须包含中文的
1 2 3 | $pattern = '/[一-龥]/u'; if (!preg_match($pattern,$comment_content) ) err( __('您的评论中必须包含汉字!') ); |
$pattern = '/[一-龥]/u'; if (!preg_match($pattern,$comment_content) ) err( __('您的评论中必须包含汉字!') );
原文:http://www.lianyue.org/2011/2107/
到此这篇关于WordPress评论中禁止或必须包含指定内容就介绍到这了。只有依靠你自己和你自己的能力来保卫,才是最可靠的、 有把握的和持久的。更多相关WordPress评论中禁止或必须包含指定内容内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!