搜尋
首頁CMS教程&#&按將驗證驗與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
    如何將PHP數據和字符串傳遞給WordPress中的JavaScript如何將PHP數據和字符串傳遞給WordPress中的JavaScriptMar 07, 2025 am 09:28 AM

    將PHP數據傳遞給JavaScript的最佳實踐:WP_LOCALIZE_SCRIPT和WP_ADD_INLINE_SCRIPT的比較是PHP文件中靜態字符串中數據存儲數據的最佳實踐。 如果在您的JavaScript代碼中需要此數據,請合併

    如何使用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)

    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.能量晶體解釋及其做什麼(黃色晶體)
    2 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    2 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您聽不到任何人,如何修復音頻
    2 週前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    SecLists

    SecLists

    SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

    MinGW - Minimalist GNU for Windows

    MinGW - Minimalist GNU for Windows

    這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    將Eclipse與SAP NetWeaver應用伺服器整合。

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境