菜缤的世界 CairBin's Blog - PJAX
type: channel
link: https://blog.cairbin.top/index.php/tag/PJAX/
items: Typecho登陆与评论添加Geetest极验证，支持PJAX主题（如Handsome）

Typecho登陆与评论添加Geetest极验证，支持PJAX主题（如Handsome）
type: item
date: 2024-11-13T10:22:00+00:00
description: Typecho登陆与评论添加Geetest极验证，支持PJAX主题（如Handsome）起因最近垃圾评论比较多，为了防止一些机器人，我给博客添加了一些评论过滤机制，并为评论添加了验证码。原本使用的插件是noisky/typecho-plugin-geetest，这个插件是只有在页面刷新的时候才初始化Geetest验证码。由于我用的主题是Handsome并且开启了PJAX回调，进入页面和文章是不进行刷新的，这就导致Geetest无法加载。因此我改进了这个插件，使其能够支持启用了PJAX的主题。（目前我已经向noisky/typecho-plugin-geetest发起合并请求，截止到我写这篇文章的时候还没有被允许，启用了PJAX回调的小伙伴可以先使用我仓库的这个）项目地址Github地址：CairBin/typecho-plugin-geetest使用说明1 下载激活插件下载插件后，解压，将文件夹名称改为 Geetest，上传到 /usr/plugins 目录下，在插件面板启用插件并配置即可使用；或者直接在 Typecho 的插件目录下执行如下命令：cd typechoPath/usr/plugins git clone https://github.com/noisky/typecho-plugin-geetest.git Geetest2 配置Nginx伪静态如果使用了宝塔面板，可以在站点设置中进行配置。（Apache也是类似，但配置写法不一样）location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php; } }3 配置插件极验验证码的 ID 和 KEY 需要到极验官网 https://www.geetest.com/ 获取；注册、创建应用的时候，基础版是免费的；如需开启评论验证码，则需要在你的主题评论模板 comments.php 中的任意一行添加如下代码（一般写在评论表单内，评论提交按钮之前）： <?php Geetest_Plugin::commentCaptchaRender(); ?> 由于jsDelivr在中国大陆失效，若服务器部署在大陆境内，在可以使用字节跳动的CDN： <?php Geetest_Plugin::commentCaptchaRender(); ?> 对于某些主题已经加载了JQuery（如Handsome主题），因此无需再次引入 <?php Geetest_Plugin::commentCaptchaRender(); ?>效果展示插件后台登陆界面评论区