WordPress 非插件实现拦截无中文留言
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访问。
WordPress 非插件实现拦截无中文留言的更多相关文章
- WordPress非插件实现评论回复邮件提醒通知
要想在第一时间知道有人在自己博客留言,然后在第一时间回复留言再第一时间通知邮件者,这就需要WordPress博客拥有邮件通知功能. 先看效果: 评论邮件通知的方法: 1.所有回复都发送邮件通知 登陆博 ...
- WordPress非插件添加文章浏览次数统计功能
一: 转载:http://www.jiangyangangblog.com/26.html 首先在寻找到functions.php.php文件夹,在最后面 ?> 的前面加入下面的代码 func ...
- 手动替换WORDPRESS的GOOGLE字体等加速【非插件】
手动替换WORDPRESS的GOOGLE字体等加速[非插件] 179 看过 | 2015年3月4日 | Linux, 随意Coding | 暂无评论 查找需要替换的地方 Linux下,在网站文件夹中, ...
- wordpress常用插件汇总
WordPress之所以能成为目前最具人气的独立博客程序,除了无数爱好者为它开发的主题外,源源不断的插件支持也是重要的原因之一.wordpress的强大,也是在于无数爱好者源源不断的主题和插件. wo ...
- 【基础教程】推荐10+必备的 WordPress 常用插件
1.Akismet Akismet 是 WordPress 官方推荐的一款 WordPress 防垃圾评论插件,也是默认已安装的插件. 2.WP-Postviews 最好的最流行的WordPress浏 ...
- 这款 WordPress商用插件 0day 漏洞满满,且已遭利用
Wordfence 安全研究员发布报告称,WordPress 商用插件 Total Donations 受多个 0day 漏洞的影响,且这些漏洞已遭利用. 这些严重的漏洞影响所有已知的 Total D ...
- 002.WordPress常见插件
Akismet Akismet 是 WordPress 官方推荐的一款 WordPress 防垃圾评论插件,也是默认已安装的插件. WP-Postviews 最好的最流行的WordPress浏览次数统 ...
- 黄聪:将自己开发的插件发布到WordPress官方插件站(转)
原文作者:我爱水煮鱼 把你的插件发布到 WordPress 官方插件目录是让更多人用到插件的好方法,这样可以让你的插件不仅仅给我们中国人民使用,而且还可以让你的插件给全世界人民使用,想想全世界人民都在 ...
- 推荐10+必备的 WordPress 常用插件
众多的WordPress插件,使得WordPress的功能得到了较大的扩展,但是也正是由于过多的插件,导致我们很难选择所需的插件.今天,倡萌就根据自己的经验,给WordPress新手推荐一些常用的插件 ...
随机推荐
- photoshop CS 调整选择区域的大小
网上看到说:矩形选框不能直接调整大小,如果你不想重新画一个可以利用转换路径,然后再调整.这是不对的,矩形选框是可以调整大小的,使用"变换选区"即可. 对应步骤截图如下: 1.画 ...
- 解决tomcat默认45s启动超时的问题
进入工作空间目录下的.metadata\.plugins\org.eclipse.wst.server.core子目录,找到servers.xml文件,编辑它,找到start-timeout这一行,把 ...
- Mingyang.net:No identifier specified for entity
org.hibernate.AnnotationException: No identifier specified for entity: net.mingyang.modules.system.C ...
- Asp.net树形递归算法
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq ...
- Reactor模式与观察者模式
多线程编程常见模式 观察者模式: 单一的观察点,事件单一 反应器模式: 多个观察点,事件不单一(NIO里面的Selector选择器,基于Channel的事件进行多路的IO复用机制) 图-网上都是这张, ...
- OC基础(20)
Protocol基本概念 Protocol注意事项 Protocol类型限制 代理设计模式 *:first-child { margin-top: 0 !important; } body > ...
- Photoshop Cs5 64位系统破解版下载(内含破解方法)
Photoshop Cs5 64位系统是电影.视频和多媒体领域的专业人士, 使用 3D 和动画的图形和 Web 设计人员, 以及工程和科学领域的专业人士的理想选择,下面提供Photoshop Cs5 ...
- java中高级软件工程师面试总结
最近去了几家公司面试java中高级工程师,打击挺大的,感觉自己一直以来没有很好的深入学习,对各种知识都是一知半解,但心又太高,想找更高薪的职位,结果面试屡屡碰壁,哎,心情好低落,也是时候静下心来,好好 ...
- redis学习(3)redis.conf配置文件详解
# Redis 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) # # 1k => 1000 bytes # 1kb ...
- Dinic
BFS构造分层网络,DFS多路增广 #include<iostream> #include<vector> #include<queue> #include< ...