网站地图    收藏   

主页 > 后端 > wordpress教程 >

一个不错的WordPress评论算术题验证码插件 - Word

来源:自学PHP网    时间:2014-11-28 23:42 作者: 阅读:

[导读] 算术题验证码我们见过最多的就是如1+3等于多少,下面我来给各位介绍在WordPress评论中加个一个算术题验证码功能,各位可参考消息 下面是插件...

一个不错的WordPress评论算术题验证码插件

算术题验证码我们见过最多的就是如1+3等于多少,下面我来给各位介绍在WordPress评论中加个一个算术题验证码功能,各位可参考消息.

下面是插件代码,自行取走:

  1. /* 
  2.  Plugin Name: 简单算术题评论验证码插件 
  3.  Description: 提交评论之前必须写出简单的算术题答案 
  4.  Version: 1.0 
  5.  Author: 否子戈 
  6. */ 
  7. if(!class_exists('comment_capatcha')) { 
  8.     class comment_capatcha { 
  9.         function __construct() { 
  10.             add_action('comment_form'array(& $this'print_capatcha')); 
  11.             add_filter('preprocess_comment'array(& $this'preprocess_comment')); 
  12.         } 
  13.         function print_capatcha() { 
  14.             if(!is_user_logged_in()) { 
  15.                 global $post
  16.                 session_start(); 
  17.                 $rand_1 = mt_rand(1,20); 
  18.                 $rand_2 = mt_rand(1,20); 
  19.                 $_SESSION['capatcha_'.$post->ID] = $rand_1 + $rand_2
  20.                 $str  = '<div id="capatcha-area"><label>'
  21.                 $str .= "{$rand_1} + {$rand_2} = ".'<input type="text" name="capatcha" id="capatcha" />'
  22.                 $str .= '智商合格才能评论 *'
  23.                 $str .= '</label></div>'
  24.                 echo $str;-  
  25.             } 
  26.         } 
  27.         function preprocess_comment($commentdata) { 
  28.             if(!is_user_logged_in()) { 
  29.                 session_start(); 
  30.                 $post_id = isset($_POST['comment_post_ID']) ? $_POST['comment_post_ID'] : 0; 
  31.                 if(!$post_id){ 
  32.                     wp_die('警告:数据来源非法!!'); 
  33.                 } 
  34.                 $capatcha = $_SESSION['capatcha_'.$post_id]; 
  35.                 if($capatcha != $_POST['capatcha']){ 
  36.                     wp_die( __('警告:你智商有问题,不允许评论,请返回重新计算。') ); 
  37.                 } 
  38.                 unset($_SESSION['capatcha_'.$post_id]); 
  39.             } 
  40.             return $commentdata
  41.         } 
  42.     } 
  43. if( !isset($comment_capatcha) ) { 
  44.     $comment_capatcha =& new comment_capatcha(); 

将上面的代码保存在comment_capatcha.php中,上传到wordpress的wp-content/plugins/目录下,到后台启动该插件就可以了.

不过,如果你是通过阅读如何自己设计wordpress评论列表及评论框之后自己设计的自己的评论框,那么一定要注意do_action('comment_form', $post->ID);的位置,因为验证算术题会在它的位置打印出来.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论