这篇是上篇《非插件实现拦截无中文留言》的进阶
以下代码不允许评论中<a 随便 href=" 或者rel="nofollow"或者http://
- function lianyue_comment_post( $incoming_comment ) {
- $http = '/[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 ) {
- $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';
- $http = '/[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评论,提示错误时可能会出现布局混乱,解决办法:
打开comments-ajax.php找到最后个err( __(并
在下一行增加:
这是必须包含中文的
- $pattern = '/[一-龥]/u';
- if (!preg_match($pattern,$comment_content) )
- err( __('您的评论中必须包含汉字!') );
这是禁止包含的内容
- $http = '/[href="|rel="nofollow"|http:\/\/|<\/a>]/u';
- if (preg_match($http,$comment_content) )
- err( __('万恶的发贴机!') );
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于