将验证验与WordPress注释表格集成
钥匙要点
- >将验证码与WordPress评论表格集成可以阻止bot提交垃圾邮件评论,节省用于调节和删除这些评论的时间和资源。 >
- >教程演示了如何在插件中使用WordPress HTTP API,将其他表单字段添加到WordPress评论表单中,并验证和利用添加到自定义字段的值。 >
- >如果验证码符号为空,或者用户未能使挑战失败,则在教程中开发的验证码插件包含一个错误消息。它还删除了提交的任何评论,使验证码挑战赛失败。 >
- >教程强调了WordPress评论系统的多功能性,允许用户在注释表格中添加额外的表单字段并通过提到的过滤器和操作来实现任何所需的功能。 多年来,WordPress由于垃圾邮件发送者的越来越受欢迎而成为垃圾邮件发送者的目标。 不幸的是,存在自动化软件的目的是爬网,以搜索使用任何流行平台(例如WordPress)构建的网站,并提交数百甚至数千个垃圾邮件评论。垃圾邮件评论非常烦人,他们在调节和删除它们方面消耗了我们宝贵的时间。
在以前的教程中,我们学会了如何将验证码整合到WordPress登录和注册表格中。
>
>以类似的方式,我们现在将通过如何将验证码与WordPress注释系统集成。。
> WordPress插件中有许多验证码插件,例如WP-Recaptcha和SecureMimage-WP-Fixed。本教程的目的是不要创建另一个CAPTCHA插件,而是:
演示如何在插件中使用WordPress HTTP API。
>如何将其他表单字段包括在WordPress评论表单中。>
>如何验证和利用添加到自定义字段的值。>不进一步的ADO,让我们从插件开发开始。
- >
- 插件开发
- >首先,前往重新捕获,注册您的域名并抓住您的公共和私人API键。
- 包括插件标头。
>创建一个具有三个属性的类,这些属性将存储Recaptcha的私钥和公钥以及验证码错误消息(当验证码表格为空并且用户失败时,会生成错误)。
>类魔术构造方法将包含两对动作和过滤钩。
>代码说明:首先,我的recaptcha公共密钥和私钥都保存到其类属性。
>将输出recaptcha挑战的CATTCHA_DISPLAY()方法通过comment_form Action添加到注释表格中。
> wp_head操作包括回调函数delete_failed_captcha_comment(),将删除提交的任何评论,以使验证码失败。
过滤器preprocess_comment调用validate_captcha_field()方法,以确保验证码字段不留空并且答案是正确的。>过滤器remand_post_redirect调用redirect_fail_captcha_comment()以在注释重定向URL中添加一些查询参数。
这是Catcha_display()的代码,它将输出Catpcha挑战。>此外,它检查当前页URL是否附加了一个查询字符串,并根据redirect_fail_captcha_comment()
设置的$ _get ['catcha']的值显示适当的错误消息。
> validate_captcha_field()的名称意味着通过确保验证码字段没有空且提供的答案是正确的。
<span><span><?php </span></span><span> </span><span><span>/* </span></span><span><span>Plugin Name: Add reCAPTCHA to comment form </span></span><span><span>Plugin URI: https://www.sitepoint.com </span></span><span><span>Description: Add Google's reCAPTCHA to WordPress comment form </span></span><span><span>Version: 1.0 </span></span><span><span>Author: Agbonghama Collins </span></span><span><span>Author URI: http://w3guy.com </span></span><span><span>License: GPL2 </span></span><span><span>*/</span></span>
<span>class Captcha_Comment_Form { </span> <span>/** <span>@type string private key|public key */</span> </span> <span>private $public_key, $private_key; </span> <span>/** <span>@type string captcha errors */</span> </span> <span>private static $captcha_error;</span>
>
以下是recaptcha_response()的代码。<span>/** class constructor */ </span> <span>public function __construct() { </span> <span>$this->public_key = '6Le6d-USAAAAAFuYXiezgJh6rDaQFPKFEi84yfMc'; </span> <span>$this->private_key = '6Le6d-USAAAAAKvV-30YdZbdl4DVmg_geKyUxF6b'; </span> <span>// adds the captcha to the WordPress form </span> <span>add_action( 'comment_form', array( $this, 'captcha_display' ) ); </span> <span>// delete comment that fail the captcha challenge </span> <span>add_action( 'wp_head', array( $this, 'delete_failed_captcha_comment' ) ); </span> <span>// authenticate the captcha answer </span> <span>add_filter( 'preprocess_comment', array( $this, 'validate_captcha_field' ) ); </span> <span>// redirect location for comment </span> <span>add_filter( 'comment_post_redirect', array( $this, 'redirect_fail_captcha_comment' ), 10, 2 ); </span> <span>}</span>
允许我解释recaptcha_response()的工作方式。
>
>带有以下参数。/** Output the reCAPTCHA form field. */ public function captcha_display() { if ( isset( $_GET['captcha'] ) && $_GET['captcha'] == 'empty' ) { echo '<span><span><span><strong</span>></span>ERROR<span><span></strong</span>></span>: CAPTCHA should not be empty'; </span> } elseif ( isset( $_GET['captcha'] ) && $_GET['captcha'] == 'failed' ) { echo '<span><span><span><strong</span>></span>ERROR<span><span></strong</span>></span>: CAPTCHA response was incorrect'; </span> } echo <<<span><span><span><CAPTCHA_FORM</span> </span></span><span> <span><style type<span>='text/css'</span>></span><span><span><span>#submit</span> { </span></span></span><span><span> <span>display: none; </span></span></span><span><span> <span>}</span></span><span><span></style</span>></span> </span> <span><span><span><script</span> type<span>="text/javascript"</span> </span></span><span> <span>src<span>="http://www.google.com/recaptcha/api/challenge?k=<span><?= $this->public_key; ?></span>"</span>></span><span> </span></span><span><span> </span><span><span></script</span>></span> </span> <span><span><span><noscript</span>></span> </span> <span><span><span><iframe</span> src<span>="http://www.google.com/recaptcha/api/noscript?k=<span><?= $this->public_key; ?></span>"</span> </span></span><span> <span>height<span>="300"</span> width<span>="300"</span> frameborder<span>="0"</span>></span><span><span></iframe</span>></span> </span> <span><span><span><br</span>></span> </span> <span><span><span><textarea</span> name<span>="recaptcha_challenge_field"</span> rows<span>="3"</span> cols<span>="40"</span>></span> </span> <span><span><span></textarea</span>></span> </span> <span><span><span><input</span> type<span>="hidden"</span> name<span>="recaptcha_response_field"</span> </span></span><span> <span>value<span>="manual_challenge"</span>></span> </span> <span><span><span></noscript</span>></span> </span> <span><span><span><input</span> name<span>="submit"</span> type<span>="submit"</span> id<span>="submit-alt"</span> tabindex<span>="6"</span> value<span>="Post Comment"</span>/></span> </span>CAPTCHA_FORM; }
privateKey:您的私钥
>远程IP求解验证码的用户的IP地址。
挑战通过表单发送的>未通过验证码挑战或让字段空的用户发表的任何评论被delete_failed_captcha_comment()
删除最后,我们关闭插件类。
<span>/** </span><span> * Add query string to the comment redirect location </span><span> * </span><span> * <span>@param $location string location to redirect to after comment </span></span><span> * <span>@param $comment object comment object </span></span><span> * </span><span> * <span>@return <span>string</span> </span></span><span> */ </span> <span>function redirect_fail_captcha_comment( $location, $comment ) { </span> <span>if ( ! empty( <span>self::</span>$captcha_error ) ) { </span> <span>$args = array( 'comment-id' => $comment->comment_ID ); </span> <span>if ( <span>self::</span>$captcha_error == 'captcha_empty' ) { </span> <span>$args['captcha'] = 'empty'; </span> <span>} elseif ( <span>self::</span>$captcha_error == 'challenge_failed' ) { </span> <span>$args['captcha'] = 'failed'; </span> <span>} </span> <span>$location = add_query_arg( $args, $location ); </span> <span>} </span> <span>return $location; </span> <span>}</span>
我们完成了编码插件类的编码。要使课堂上班,我们需要像这样实例化:
<span>/** </span><span> * Verify the captcha answer </span><span> * </span><span> * <span>@param $commentdata object comment object </span></span><span> * </span><span> * <span>@return <span>object</span> </span></span><span> */ </span> <span>public function validate_captcha_field( $commentdata ) { </span> <span>// if captcha is left empty, set the self::$captcha_error property to indicate so. </span> <span>if ( empty( $_POST['recaptcha_response_field'] ) ) { </span> <span><span>self::</span>$captcha_error = 'captcha_empty'; </span> <span>} </span> <span>// if captcha verification fail, set self::$captcha_error to indicate so </span> <span>elseif ( $this->recaptcha_response() == 'false' ) { </span> <span><span>self::</span>$captcha_error = 'challenge_failed'; </span> <span>} </span> <span>return $commentdata; </span> <span>}</span>
在激活插件时,将在下面显示的WordPress注释表格中添加验证码。
。
总结
在本教程的末尾,您应该能够在评论表格中添加额外的表单字段并实现您希望在评论系统中具有的任何功能,这要归功于提到的过滤器和操作。如果您想在WordPress网站上使用插件或深入研究代码,请从Github下载插件。
直到我再次走,愉快的编码!
>经常询问有关将验证验与WordPress注释表格集成的问题(常见问题解答)
>将验证码与WordPress评论表单集成的重要性是什么?首先,它有助于防止垃圾邮件评论,这可能会使您的网站混乱并阻止真正的用户。其次,它增加了额外的安全性,保护您的网站免受机器人和自动脚本的影响。最后,它可以节省您的时间和资源,否则将花费在垃圾邮件评论中进行调节和删除。我如何在WordPress评论表单上自定义验证码?>在您的WordPress评论上自定义CAPTCHA表单可以通过您使用的验证码插件的设置来完成。大多数插件都提供了更改验证码的复杂性,设计和布局的选项。有些人甚至允许您创建自己的自定义验证码。
> WordPress评论表单有其他替代方案吗? > > ,而验证码在防止机器人生成的垃圾邮件方面非常有效,但它可能对人类生成的垃圾邮件不那么有效。为此,请考虑使用其他措施,例如评论审核或某些单词或IP地址。 我可以在没有插件的情况下将CAPTCHA与WordPress注释表单集成在一起?可以将CAPTCHA与无插件的WordPress注释表单集成在一起,它需要高级编码知识,并且不建议大多数用户使用。使用插件简化了该过程,并确保正确实现了验证码。 建议每当发布新版本时,建议更新您的验证码插件。这样可以确保您具有最新的安全功能,并且该插件与最新版本的WordPress保持兼容。>
验证验证是否有效,可以防止所有类型的垃圾邮件?
>将CAPTCHA集成不应显着影响站点性能。但是,像任何插件一样,它确实使用了一些资源。如果您注意到放缓,请考虑使用轻巧的验证码插件或以其他方式优化网站的性能。
>我应该多久更新一次验证码插件?
以上是将验证验与WordPress注释表格集成的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

您是否正在寻找自动化 WordPress 网站和社交媒体帐户的方法? 通过自动化,您将能够在 Facebook、Twitter、LinkedIn、Instagram 等平台上自动分享您的 WordPress 博客文章或更新。 在本文中,我们将向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 轻松实现 WordPress 和社交媒体的自动化。 为什么要自动化 WordPress 和社交媒体? 自动化您的WordPre
