搜索
首页CMS教程WordPress将验证验与WordPress注释表格集成

将验证验与WordPress注释表格集成

钥匙要点

  • >将验证码与WordPress评论表格集成可以阻止bot提交垃圾邮件评论,节省用于调节和删除这些评论的时间和资源。
  • >
  • >教程演示了如何在插件中使用WordPress HTTP API,将其他表单字段添加到WordPress评论表单中,并验证和利用添加到自定义字段的值。
  • >
  • >如果验证码符号为空,或者用户未能使挑战失败,则在教程中开发的验证码插件包含一个错误消息。它还删除了提交的任何评论,使验证码挑战赛失败。
  • >
  • >教程强调了WordPress评论系统的多功能性,允许用户在注释表格中添加额外的表单字段并通过提到的过滤器和操作来实现任何所需的功能。
  • 多年来,WordPress由于垃圾邮件发送者的越来越受欢迎而成为垃圾邮件发送者的目标。 不幸的是,存在自动化软件的目的是爬网,以搜索使用任何流行平台(例如WordPress)构建的网站,并提交数百甚至数千个垃圾邮件评论。垃圾邮件评论非常烦人,他们在调节和删除它们方面消耗了我们宝贵的时间。
我知道您和我一样讨厌垃圾邮件评论,很想知道如何与他们作战。阻止机器人提交垃圾邮件评论的一种方法是将验证码整合到评论表格上。

在以前的教程中,我们学会了如何将验证码整合到WordPress登录和注册表格中。

>

>以类似的方式,我们现在将通过如何将验证码与WordPress注释系统集成。

> WordPress插件中有许多验证码插件,例如WP-Recaptcha和SecureMimage-WP-Fixed。

本教程的目的是不要创建另一个CAPTCHA插件,而是:>

演示如何在插件中使用WordPress HTTP API。

>如何将其他表单字段包括在WordPress评论表单中。

>

>如何验证和利用添加到自定义字段的值。>

>不进一步的ADO,让我们从插件开发开始。
    >
  1. 插件开发
  2. >首先,前往重新捕获,注册您的域名并抓住您的公共和私人API键。
  3. 包括插件标头。

>创建一个具有三个属性的类,这些属性将存储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地址。

挑战通过表单发送的的值。
  • >
  • 响应通过表格发送的
  • recaptcha_response_field
  • 的值。
  • >由表格发送的挑战和响应帖子数据分别捕获并保存到$挑战和$响应。 $ _server [“远程_ADDR”]捕获用户的IP地址,然后捕获到$ remote_ip。
  • > wordpress http api以阵列形式以下代码。>
  • recaptcha_post_request()是HTTP API的包装函数,它将接受邮政参数/正文,向recaptcha api提出请求,并返回True,如果通过验证码测试并通过false,则否则。

    >未通过验证码挑战或让字段空的用户发表的任何评论被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注释表格集成

    总结

    在本教程的末尾,您应该能够在评论表格中添加额外的表单字段并实现您希望在评论系统中具有的任何功能,这要归功于提到的过滤器和操作。

    如果您想在WordPress网站上使用插件或深入研究代码,请从Github下载插件。

    直到我再次走,愉快的编码!

    >经常询问有关将验证验与WordPress注释表格集成的问题(常见问题解答)

    >将验证码与WordPress评论表单集成的重要性是什么?首先,它有助于防止垃圾邮件评论,这可能会使您的网站混乱并阻止真正的用户。其次,它增加了额外的安全性,保护您的网站免受机器人和自动脚本的影响。最后,它可以节省您的时间和资源,否则将花费在垃圾邮件评论中进行调节和删除。

    我如何在WordPress评论表单上自定义验证码?

    >在您的WordPress评论上自定义CAPTCHA表单可以通过您使用的验证码插件的设置来完成。大多数插件都提供了更改验证码的复杂性,设计和布局的选项。有些人甚至允许您创建自己的自定义验证码。

    > WordPress评论表单有其他替代方案吗?>是的,WordPress评论表单有几种替代方案。其中包括Akismet,垃圾邮件过滤服务和HoneyPot,一种方法可以通过与隐藏的形式字段进行交互来欺骗bot来揭示自己。

    >我可以在WordPress站点上的其他表单上使用CAPTCHA? 🎜>绝对。可以将CAPTCHA与WordPress站点上的任何表格集成,包括联系表,注册表格和登录表格。这提供了整个网站上的其他安全性和垃圾邮件的预防。

    >

    如果Catpcha在我的WordPress评论表单上不起作用,该怎么办?

    如果Catcha在您的WordPress评论表单上不工作,首先检查以确保插件已正确安装和激活。如果问题持续存在,请尝试清除浏览器缓存或禁用其他插件以查看是否存在冲突。

    >

    我如何使残疾用户更容易获得验证码?可访问,考虑使用音频验证码或基于逻辑的验证码,该验证码要求用户回答一个简单的问题。另外,请确保您的验证码插件符合Web内容可访问性指南(WCAG)。

    >

    验证验证是否有效,可以防止所有类型的垃圾邮件?

    ,而验证码在防止机器人生成的垃圾邮件方面非常有效,但它可能对人类生成的垃圾邮件不那么有效。为此,请考虑使用其他措施,例如评论审核或某些单词或IP地址。

    >是否会将验证码与WordPress注释形式集成到站点性能吗?

    >将CAPTCHA集成不应显着影响站点性能。但是,像任何插件一样,它确实使用了一些资源。如果您注意到放缓,请考虑使用轻巧的验证码插件或以其他方式优化网站的性能。

    我可以在没有插件的情况下将CAPTCHA与WordPress注释表单集成在一起?可以将CAPTCHA与无插件的WordPress注释表单集成在一起,它需要高级编码知识,并且不建议大多数用户使用。使用插件简化了该过程,并确保正确实现了验证码。

    >

    >我应该多久更新一次验证码插件?

    建议每当发布新版本时,建议更新您的验证码插件。这样可以确保您具有最新的安全功能,并且该插件与最新版本的WordPress保持兼容。

    以上是将验证验与WordPress注释表格集成的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    如何使用WordPress插件嵌入和保护PDF文件如何使用WordPress插件嵌入和保护PDF文件Mar 09, 2025 am 11:08 AM

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

    对于初学者来说,WordPress容易吗?对于初学者来说,WordPress容易吗?Apr 03, 2025 am 12:02 AM

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

    为什么有人会使用WordPress?为什么有人会使用WordPress?Apr 02, 2025 pm 02:57 PM

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

    WordPress仍然免费吗?WordPress仍然免费吗?Apr 04, 2025 am 12:06 AM

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

    WordPress的成本是多少?WordPress的成本是多少?Apr 05, 2025 am 12:13 AM

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

    我应该使用Wix或WordPress吗?我应该使用Wix或WordPress吗?Apr 06, 2025 am 12:11 AM

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

    WordPress有什么用?WordPress有什么用?Apr 07, 2025 am 12:06 AM

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

    WordPress是CMS吗?WordPress是CMS吗?Apr 08, 2025 am 12:02 AM

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

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳图形设置
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您听不到任何人,如何修复音频
    3 周前By尊渡假赌尊渡假赌尊渡假赌

    热工具

    SublimeText3 英文版

    SublimeText3 英文版

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

    mPDF

    mPDF

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

    适用于 Eclipse 的 SAP NetWeaver 服务器适配器

    适用于 Eclipse 的 SAP NetWeaver 服务器适配器

    将Eclipse与SAP NetWeaver应用服务器集成。

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    螳螂BT

    螳螂BT

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