钥匙要点
- >将验证码与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>
<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>>让我们仔细看看validate_captcha_field(),特别是elseif条件语句,呼叫recaptcha_response()以检查验证码的答案是否正确。
>
以下是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>></strong></span>ERROR<span><span></span>></span>: CAPTCHA should not be empty'; </span> } elseif ( isset( $_GET['captcha'] ) && $_GET['captcha'] == 'failed' ) { echo '<span><span><span><strong>></strong></span>ERROR<span><span></span>></span>: CAPTCHA response was incorrect'; </span> } echo <span><span><captcha_form> </captcha_form></span></span><span> <span><style type>='text/css'</style></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></span>></span> </span> <span><span><span><script> type<span >="text/javascript"</script></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></span>></span> </span> <span><span><span><noscript>></noscript></span> </span> <span><span><span><iframe> src<span>="http://www.google.com/recaptcha/api/noscript?k=<span>= $this->public_key; ?></span>"</span> </iframe></span></span><span> <span>height<span>="300"</span> width<span>="300"</span> frameborder<span>="0"</span>></span><span><span></span>></span> </span> <span><span><span><br>></span> </span> <span><span><span><textarea> name<span>="recaptcha_challenge_field"</span> rows<span>="3"</span> cols<span>="40"</span>></textarea></span> </span> <span><span><span></span>></span> </span> <span><span><span><input> type<span>="hidden"</span> name<span>="recaptcha_response_field"</span> </span></span><span> <span>value<span>="manual_challenge"</span>></span> </span> <span><span><span></span>></span> </span> <span><span><span><input> 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; }</span></span></span></span></span></span></span>
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中文网其他相关文章!

本指南演示了如何使用WordPress PDF插件在WordPress帖子和页面中嵌入和保护PDF文件。 PDFS为从目录到演示文稿提供了一种用户友好的,普遍访问的格式。 此方法ENS

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

人们选择使用WordPress是因为其强大和灵活性。1)WordPress是一个开源的CMS,易用性和可扩展性强,适合各种网站需求。2)它有丰富的主题和插件,生态系统庞大,社区支持强大。3)WordPress的工作原理基于主题、插件和核心功能,使用PHP和MySQL处理数据,支持性能优化。

WordPress核心版本是免费的,但使用过程中可能产生其他费用。1.域名和托管服务需要付费。2.高级主题和插件可能需要付费。3.专业服务和高级功能可能需要付费。

WordPress本身免费,但使用需额外费用:1.WordPress.com提供从免费到付费的套餐,价格从每月几美元到几十美元不等;2.WordPress.org需购买域名(每年10-20美元)和托管服务(每月5-50美元);3.插件和主题多数免费,付费的价格在几十到几百美元之间;通过选择合适的托管服务、合理使用插件和主题、定期维护和优化,可以有效控制和优化WordPress的成本。

Wix适合没有编程经验的用户,WordPress适合希望有更多控制和扩展能力的用户。1)Wix提供拖放式编辑器和丰富模板,易于快速搭建网站。2)WordPress作为开源CMS,拥有庞大社区和插件生态,支持深度自定义和扩展。

wordpressgood forvortalyanewebprojectDuetoItsAsatilityAsacms.itexcelsin:1)用户友好性,允许Aeserywebsitesetup; 2)sexibility andcustomized andcustomization and numerthemesandplugins; 3)seoop timigimization; and4)and4)

WordPress是内容管理系统(CMS)。它提供内容管理、用户管理、主题和插件功能,支持创建和管理网站内容。其工作原理包括数据库管理、模板系统和插件架构,适用于从博客到企业网站的各种需求。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

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

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。