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

2013年05月21日13:35:22 34 2,368

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

以下代码不允许评论中<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( __('万恶的发贴机!') );  
weinxin
我的微信
分享交流WordPress经验与技巧,关注前端设计与网站制作。仅用于功能演示。
Begin主题购买
Begin主题购买

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:34   其中:访客  33   博主  1

    • 我勒个 2

      好文章啊!!!

      • 光辉 1

        学习了,回头去试试。

        • 李梓朋 3

          垃圾评论一波一波的,删都删不过来,能把人烦死!

          • wmtimes 7

            可以改改屏蔽垃圾评论。

            • 飞翔博客 3

              想安装了个验证码 插件没法用???

              • mengzi 4

                鸟哥最近很忙吗,在wopus提问了一个问题,一直没回复,ie10问题那个

                • 小明 1

                  没使用任何插件代码,纯手工删除垃圾评论,每天十多条!

                  • 氪星人 1

                    鸟哥 求解决啊!有漏洞怎么修复啊?有个install.php漏洞,我删除了不知道,有影响不?还有2个没解决呢,鸟哥你给我看看,用360检测出的。

                      • 知更鸟 Admin

                        @氪星人 就目前最新的Wordpress而言,站点非常安全,可以不用理会这个250+110的所谓检测

                          • 氪星人 1

                            @知更鸟 收到了鸟哥,谢谢啦,现在也不用360卫士和杀软!

                        • shengdi 1

                          学习了 谢谢鸟哥

                          • 弹簧机 1

                            鸟哥设计很有天赋

                            • 施妍芳 0

                              新发现一个问题,底部菜单栏在文章页面不居中了,是那里出问题了呢

                              • wordpress主题先生 4

                                请问博主,hotnews主题怎么实现自动检索文章中第一张图片作为文章的特色图片!

                                • 乐吧 0

                                  鸟哥的文章果然不错,学习了

                                  • Louis Han 6

                                    最近spam太多了 真是不胜其扰啊

                                    • 绿软盒子 2

                                      用上了了,效果很不错!

                                      • 飞翔博客 3

                                        垃圾评论 发的就是 汉字 啊

                                        • 宝宝 0

                                          鸟哥,帮个忙,我的博客插件升级了,然后出现了错误,帮我看看!谢谢!

                                          • xftalk 1

                                            不错,垃圾评论很烦人。

                                            • wordpress主题下载 2

                                              经过测试,屏蔽的每个字,而不是词。也就是说,比如屏蔽的我们 只要出现 我 或者 们 都会被屏蔽!

                                              • wordpress主题下载 2

                                                所以我觉得把 等于号、小于号、点号等屏蔽即可!!

                                                • no1ledlight 0

                                                  非常好!学习了

                                                  • 围挡 4

                                                    能不能让一些字变成***或者用其他符号代替?

                                                    • 大河笨鸟 1

                                                      代码有问题,屏蔽的是单个字符而不是整体。比如wp这两个字母出现时就会被屏蔽,原因是w出现了,而w是nofollow中最后一个字符。

                                                      • 免费部落 2

                                                        赶紧去修改一下了!

                                                        • 影之哀伤 1

                                                          如果是英文文章 国外人评论的话 怎么取消必须有汉字这功能

                                                          • 微而 1

                                                            受用了,谢谢!

                                                            • qkwu 1

                                                              这个不错 挺实用

                                                              • h 0

                                                                实用!

                                                                • 飞檐走沟 0

                                                                  功能确实很实用特别是ajax评论禁止全英文,还想问下 ajax评论怎么防止冒充管理员名字和邮箱,望回复!

                                                                  • 风神博客 0

                                                                    kankan风神博客路过