Some Chinese Please插件可以拦截不带中文字的留言,本博客一直在用效果不错,不写入数据库,可有效地减少spam对服务器的无谓使用,其实可以将插件简化一下,直接用代码实现。
将下面代码加到主题functions模板文件中,效果与使用插件相同。
- /* refused spam */
- function refused_spam_comments( $comment_data ) {
- $pattern = '/[一-龥]/u';
- if(!preg_match($pattern,$comment_data['comment_content'])) {
- wp_die('评论必须含中文!');
- }
- return( $comment_data );
- }
- add_filter('preprocess_comment','refused_spam_comments');
注:如果使用的是HotNews主题,请将 wp_die 替换为 err,否则显示错误信息时,会造成模版错位,其它使用ajax评论的主题也可参照修改。
其它一些写入数据库的防spam插件不建议使用, 比如WordPress官方的防垃圾插件Akismet会在数据库中留下大量的信息,增加服务器负担。
针对那些使用技术手段,比如GET、POST等方式不填写前台表单,直接读取后台程序文件的spam,只有屏蔽IP才能缓解疯狗一样的攻势,其它什么验证码、滑动解锁等等都没用。
可以在.htaccess文件中添加:
- Order Deny,Allow
- Deny from xxx.xxx.xxx.xx
- Deny from xxx.xxx.xxx.xx
禁止某些IP访问。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!
我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
河南省 1F
鸟哥有心了!
江苏省苏州市 2F
代码里的
$pattern = ‘/[一-龥]/u’;
就是匹配判断中文所有字符的么?
看起来像乱码一样。
江苏省苏州市昆山市 3F
邮件收到博主的回复,点进来一看,在原有的评论下面却并没有看到。
是bug吗?
江苏省苏州市昆山市 4F
不使用wp_die函数的话,wordpress是没有err函数的。
经过我在3.5.1版本里测试,err函数并不存在。
难道是博主的主题里有这样的err函数么?
中国 B1
@ Teddysun 是我刚才数据回档了
既然都是PHP使用err没什么问题,可以在此测试无中文留言,看看效果
江苏省苏州市 B2
@ 知更鸟 err函数在博主这边是OK的。
我在本地测试的时候,是无弹出消息的。是会跳转到wp-comments-post.php这个页面。
所以,最后我改成了wp_die
中国 B3
@ Teddysun 可能是我的主题使用了ajax评论的原因
北京市东城区 5F
求助老大啊我换了主机空间后,升级到最新版的wp后,在前台登录的话登录按钮不便,点击文章后才出管理员已登录的提示,到后台我更新以前的文本小工具但是前台还是以前那个工具啊,但是后台确实更新了,求解啊
中国 B1
@ 电视包装网 因为你安装了静态缓存插件WP-Super-Cache
这种插件对个人小博没有任何P用
可以阅读下面这篇关于静态化的文章
http://zmingcx.com/static-caching-plugin.html
江苏省苏州市 B2
@ 知更鸟 安装WP-Super-Cache静态化,还有一个功能我想博主应该会知道的,那就是防F5暴力刷新。
一个Wordpress博客不作任何缓存或者静态的话,只需简简单单F5键按住,狂刷页面就会把mysql刷爆。
中国 B3
@ Teddysun 恶意攻击,弄成静态能有多大用处
北京市 B2
@ 知更鸟 误会啊,插件WP-Super-Cache是我今天刚装的啊,由于不更新我查看网上资料,有人说要我清理缓存,我就安装了插件WP-Super-Cache,之前一直是禁止的缓存
北京市 B2
@ 知更鸟 我现在直接卸载了那个插件还是不行哦,前天登录了,还是各种登录就是不出现控制台的连接哦
北京市 B2
@ 知更鸟 鸟哥我现在取消了所有的插件,重新装了一遍主题还是那个效果啊,现在只有直接输入后台登录地址才能进入后台,前天登录的怎么都登录不上
中国 B3
@ 电视包装网 我只想告诉你这个问题与主题没P关系
先学会如何安装与卸载静态缓存插件…..
外话,静态缓存插件菜鸟必备,人云亦云,注定杯具…
福建省福州市鼓楼区 B4
@ 知更鸟 @知更鸟 : 评论@回复有点问题,显示非法字符,怎么解决
英国 6F
感谢鸟哥分享~
安徽省芜湖市 7F
这个很不错,最近的垃圾英文留言很烦
上海市 8F
不错完美实现!
最近垃圾评论 尤其多啊 每天 几十个! ╮(╯▽╰)╭
广东省深圳市 9F
刚试了一下 发现任然无法阻挡垃圾评论啊 怎么办法 啊????
河北省石家庄市 10F
好东西!使用后再不用隔两天就清理洋垃圾评论了!
福建省福州市 11F
用了这个以后@回复不成功,提示:万恶的发帖机。 我去掉以后才行,求解决方式
山西省太原市 12F
同一ip不是有很多人的吗?
江苏省苏州市 13F
现在发垃圾评论的都精了 我http://www.34qu.com用了这个方法后 竟然发现有垃圾评论也带中文了
山东省济南市 14F
禁止掉同一ip就可以了~
河南省开封市兰考县 15F
Ality主题 0.32 版 无法用插件 myQaptcha 滑动条无法滑动 不知道怎么回事 特来报告
河北省石家庄市高邑县 16F
有没有方法可以将某条评论置顶呢http://www.52masaike.com
陕西省西安市 17F
现在用的err 报错怎么搞:Uncaught Error: Call to undefined function err()
甘肃省天水市 18F
现在用的err()函数会报错,调用未定义函数。
中国 B1
@ 简单生活 文章中用err是专指在我设计的主题中使用
其它主题在函数模板中添加下面代码,重新定义err
function err($ErrMsg) {
header(‘HTTP/1.1 405 Method Not Allowed’);
echo $ErrMsg;
exit;
}
甘肃省天水市 B2
@ 知更鸟 用的就是begin主题,只要有国外发垃圾评论,网站错误日志里就会增加大量关于这个报错,我试试,谢谢。