给wordpress加上QapTcha滑块验证
这几天博客的spam漫天飞啊满天飞…他娘的锤子..天天给我一大堆垃圾评论删…烦都烦死了..
关于防止垃圾评论,网上有很多方法…WP呢,也有不少插件,比如说wp-seccod什么的..
这里我另外写一个防止垃圾评论的方法传统验证码要求用户先辨认(或者计算),然后敲击键盘输入结果。使用QapTcha仅需滑动一下鼠标,可以很好的提高用户体验。其原理是当滑动条滑动到指定位置时,会由后台发起一个请求,该请求会往session里加上一些内容,我们只要在提交的时候判断一下在session里有没有这些内容就可以了。
1、先去官网下载最新版的压缩包,解压.
由于QapTcha依赖于jquery,其包内自带了jquery的js文件,把文件夹改名后上传.
我的qaptcha文件夹的路径为 Http://x73.cc/wp-includes/qaptcha.
2、找到QapTcha.jquery.js,大约在11行view sourceprint?01 jQuery.QapTcha = {
02 build : function(options)
03 {
04 var defaults = {
05 txtLock : Locked : form can be submited, //解锁前提示,可自由修改
06 txtUnlock : Unlocked : form can be submited, //解锁后提示,可自由修改
07 disabledSubmit : true,
08 autoRevert : false,
09 PHPfile : php/Qaptcha.jquery.php //把这个地址改为/wp-includes/qaptcha/php/Qaptcha.jquery.php
10 };
3.如果你要修改样式,请对照自己的主题修改QapTcha.jquery.css即可
4.修改主题里的functions.php,加上
view sourceprint?01 function my_wp_head() {//这个函数里的内容当然也可以直接写到header.php里
02 if(is_singular() && !is_user_logged_in()) {
03 echo ´<script type="text/javascript" src="´.get_bloginfo("wpurl").´/wp-includes/qaptcha/jquery/jquery-ui.js"></script>´." ";
04 echo ´<script type="text/javascript" src="´.get_bloginfo("wpurl").´/wp-includes/qaptcha/jquery/jquery.ui.touch.js"></script>´." ";
05 echo ´<script type="text/javascript" src="´.get_bloginfo("wpurl").´/wp-includes/qaptcha/jquery/QapTcha.jquery.js"></script>´." ";
06 echo ´<link rel="stylesheet" href="´.get_bloginfo("wpurl").´/wp-includes/qaptcha/jquery/QapTcha.jquery.css" type="text/css" />´." ";
07 echo ´<script type="text/javascript">
08 $(document).ready(function(){
09 $("#QapTcha").QapTcha({disabledSubmit:true});
10 });
11 </script>´." ";
12 }
13 }
14 add_action(´wp_head´, ´my_wp_head´, 100);
15 function my_preprocess_comment($comment) {
16 if (!is_user_logged_in()) {
17 if(!session_id()) session_start();
18 if(isset($_POST[´iQapTcha´]) && empty($_POST[´iQapTcha´]) && isset($_SESSION[´iQaptcha´]) && $_SESSION[´iQaptcha´]) {
19 unset($_SESSION[´iQaptcha´]);
20 return($comment);
21 } else wp_die("抱歉,你没有通过验证。");//提示语自行修改
22 } else
23 return($comment);
24 }
25 add_action(´preprocess_comment´, ´my_preprocess_comment´);
5.然后修改主题的comments.php(评论模板)文件,找到你希望滚动条出现的位置,加上
view sourceprint?1 <div id="QapTcha"></div>
6.把文件上传到你的服务器,看看效果吧,然后再修改一下样式,直到自己满意为止.
原创文章,转载请注明: 转载自Ps7isys Blog
补充:web前端 , HTML/CSS ,