请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 511|回复: 0

为 WordPress 搜索添加人机验证

[复制链接]

6772

主题

8

回帖

2万

积分

管理员

积分
21723
发表于 2022-7-11 23:24:49 | 显示全部楼层 |阅读模式
将下面代码添加到主题的functions.php文件中即可


  1. function esc_search_captcha( $query, $error = true ) {
  2.         if ( is_search() && !is_admin() ) {
  3.                 if ( ! isset( $_COOKIE['esc_search_captcha'] ) ) {
  4.                         $query->is_search = false;
  5.                         $query->query_vars['s'] = false;
  6.                         $query->query['s'] = false;

  7.                         if ( $error == true ){
  8.                                 //$query->is_404 = true;
  9.                                 if ( isset( $_POST['result'] ) ) {
  10.                                         if ( $_POST['result'] == $_COOKIE['result'] ) {
  11.                                                 $_COOKIE['esc_search_captcha'] = 1;
  12.                                                 setcookie('esc_search_captcha',1,0,'/');
  13.                                                 echo '<script>location.reload();</script>';
  14.                                         }
  15.                                 }

  16.                                 $num1 = rand(1,50);
  17.                                 $num2 = rand(1,50);
  18.                                 $result = $num1+$num2;
  19.                                 $_COOKIE['result'] = $result;
  20.                                 setcookie('result',urldecode($result),0,'/');
  21.                                 ?>

  22.                                 <html>
  23.                                 <head>
  24.                                 <meta charset="UTF-8">
  25.                                 <title>人机验证</title>
  26.                                 <style>
  27.                                 body{color: #333;text-align: center;font-size: 16px;}
  28.                                 .erphp-search-captcha{margin: 50px auto 15px;max-width: 250px;width: 100%;padding: 40px 20px;border: 1px solid #ddd;text-align: center;border-radius: 5px;}
  29.                                 .erphp-search-captcha form{margin: 0}
  30.                                 .erphp-search-captcha input{border: none;border-bottom: 1px solid #666;width: 50px;text-align: center;font-size: 16px;}
  31.                                 .erphp-search-captcha input:focus{outline: none;}
  32.                                 .erphp-search-captcha button{border: none;background: transparent;color: #ff5f33;cursor: pointer;}
  33.                                 .erphp-search-captcha button:focus{outline: none;}
  34.                                 a{color: #000;font-size: 12px;}
  35.                                 </style>
  36.                                 </head>
  37.                                 <body>
  38.                                 <div class="erphp-search-captcha">
  39.                                 <form action="" method="post"><?php echo $num1;?> + <?php echo $num2;?> = <input type="text" name="result" required /> <button type="submit">验证</button></form>
  40.                                 </div>
  41.                                 <a href="<?php echo home_url();?>">返回首页</a>
  42.                                 </body>
  43.                                 </html>
  44.                                 <?php
  45.                                 exit;
  46.                         }
  47.                 }
  48.         }
  49. }
  50. add_action( 'parse_query', 'esc_search_captcha' );
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表