検索
ホームページCMS チュートリアル&#&プレスキャプチャをWordPressコメントフォームと統合します

キャプチャをWordPressコメントフォームと統合します

キーテイクアウト

  • キャプチャをWordPressコメントフォームと統合すると、ボットがスパムコメントの送信を阻止したり、これらのコメントのモデレートと削除に費やした時間とリソースを節約できます。
  • チュートリアルでは、WordPress HTTP APIをプラグインで使用する方法を示し、WordPressコメントフォームにフォームフィールドを追加し、カスタムフィールドに追加された値を検証および利用します。
  • チュートリアルで開発されたCaptchaプラグインには、Captchaフォームが空のままになっている場合、またはユーザーがチャレンジに失敗した場合、エラーメッセージが含まれています。また、Captchaチャレンジに失敗した提出されたコメントを削除します。
  • チュートリアルでは、WordPressコメントシステムの汎用性を強調しているため、ユーザーはコメントフォームに追加のフォームフィールドを追加して、言及されたフィルターとアクションのおかげで目的の機能を実装できます。
  • 長年にわたり、WordPressは人気が高まっているため、スパマーの標的になっています。
  • 残念ながら、WordPressなどの人気のあるプラットフォームで構築されたWebサイトを探してWebをクロールする目的である自動化されたソフトウェアが存在し、数百、数千のスパムコメントを提出することが存在します。スパムのコメントは非常に迷惑です。彼らは、それらをモデレートして削除することに関して、私たちの貴重な時間を消費します。
  • 私と同じようにスパムコメントが嫌いであり、それらと戦う方法を知りたいと思っています。ボットがスパムのコメントを送信するのを阻止する1つの方法は、Captchaをコメントフォームに統合することです。
以前のチュートリアルでは、CaptchasをWordPressログインと登録フォームに統合する方法を学びました。 同様の方法で、CaptChaをWordPressコメントシステムと統合する方法を説明します。

WP-RecaptchaやSecurimage-WP-FixedなどのWordPressプラグインディレクトリには、多くのCaptchaプラグインがあります。 このチュートリアルの目的は、さらに別のCaptchaプラグインを作成するのではなく、次のことです。

WordPress HTTP APIをプラグインでどのように使用できるかを示します。

WordPressコメントフォームに追加のフォームフィールドを含める方法。

カスタムフィールドに追加された値を検証し、利用する方法

これ以上苦労せずに、プラグインの開発を始めましょう。

プラグインの開発

最初に、Recaptchaに向かい、ドメイン名を登録して、パブリックおよびプライベートAPIキーをつかんでください。

プラグインヘッダーを含めます。

  1. Recaptchaのプライベートキーと公開キーを保存する3つのプロパティとCaptchaエラーメッセージを作成するクラスを作成します(Captchaフォームが空のままで、ユーザーがチャレンジに失敗したときにエラーが生成されます)。
  2. クラスマジックコンストラクターメソッドには、2組のアクションとフィルターフックが含まれます。
  3. コードの説明:まず、私のRecaptchaのパブリックキーとプライベートキーはクラスのプロパティに保存されます。

    Recaptchaチャレンジを出力するCAPTCHA_DISPLAY()メソッドは、comment_formアクションによってコメントフォームに追加されます。

    wp_headアクションには、Captchaチャレンジに失敗した送信されたコメントを削除するコールバック関数delete_failed_captcha_comment()が含まれています。

    フィルターpreprocess_commentは、captchaフィールドが空にならないようにし、答えが正しいことを確認するために、validate_captcha_field()メソッドを呼び出します。

    フィルターコメント_POST_REDIRECT CALL REDIRECT_FAIL_CAPTCHA_COMMENT()コメントRedirection URLにいくつかのクエリパラメーターを追加します。 Captcha Challengeを出力するCaptcha_display()のコードは次のとおりです。 さらに、現在のページURLに添付されているクエリ文字列があるかどうかを確認し、Redirect_Fail_Captcha_comment()

    >>>>>

    メソッドvalidate_captcha_field()の名前は、キャプチャフィールドが空にならないようにし、付属の回答が正しいことを確認することにより、キャプチャの回答を検証することを意味します。

    validate_captcha_field()、具体的にはelseif条件ステートメントを詳しく見てみましょう。captchaの回答が正しいかどうかを確認するためにrecaptcha_response()に呼び出しが行われます。 以下は、recaptcha_response()。

    のコードです

    <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>
    recaptcha_response()がどのように機能するかを説明させてください
    <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>
    投稿リクエストはエンドポイントに送信されますhttp://www.google.com/recaptcha/api/verify次のパラメーターを使用して。

    privatekey:あなたのプライベートキー
    <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>

    CAPTCHAを解決したユーザーのIPアドレスをremoteip。

    recaptcha_challenge_field
    /** 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>
    の値に挑戦します。フォームから送信されます

    応答

    recaptcha_response_field

    の値は、フォームを介して送信されます

      フォームによって送信されたデータの課題と応答の投稿データは、それぞれ$課題と$の応答に保存されます。 $ _SERVER ["Remote_addr"]ユーザーのIPアドレスをキャプチャし、$ remote_ip。
    • wordpress http api投稿パラメーターは配列形式であるため、以下のコード。
    • recaptcha_post_request()は、postパラメーター/ボディを受け入れるHTTP APIのラッパー関数であり、Recaptcha APIにリクエストを行い、CAPTCHAテストが渡され、そうでない場合はtrueを返します。
    • Captchaチャレンジに失敗したか、フィールドを空のままにしたユーザーが作成したコメントは、delete_failed_captcha_comment()によって削除されます
    • 最後に、プラグインクラスを閉じます。
    • プラグインクラスのコーディングが完了しました。クラスを機能させるには、そうするようにインスタンス化する必要があります:

    プラグインのアクティブ化については、以下の表示のようにWordPressコメントフォームにCaptChaが追加されます。キャプチャをWordPressコメントフォームと統合します

    wlap up

    このチュートリアルの最後に、コメントフォームに追加のフォームフィールドを追加し、言及されたフィルターとアクションのおかげでコメントシステムに希望するすべての機能を実装できるはずです。

    WordPressサイトでプラグインを使用する場合、またはコードを詳細に調査する場合は、GitHubからプラグインをダウンロードします。

    私が再びあなたの道に来るまで、幸せなコーディング!

    キャプチャをWordPressコメントフォームと統合することに関するよくある質問(FAQ)

    CaptchaをWordPressコメントフォームと統合することの重要性は何ですか?

    ​​

    キャプチャをWordPressコメントフォームと統合することは、いくつかの理由で重要です。第一に、それはあなたのウェブサイトを乱雑にして本物のユーザーを阻止することができるスパムのコメントを防ぐのに役立ちます。第二に、セキュリティの追加レイヤーを追加し、ボットや自動化されたスクリプトからサイトを保護します。最後に、スパムコメントのモデレートと削除に費やす時間とリソースを節約します。フォームは、使用しているCaptchaプラグインの設定を介して実行できます。ほとんどのプラグインは、Captchaの複雑さ、デザイン、レイアウトを変更するオプションを提供します。独自のカスタムCaptchaを作成することもできます。これらには、スパムフィルタリングサービスであるAkismet、およびHoneypotが含まれます。これは、非表示のフォームフィールドと対話することでボットをだまして自分自身を明らかにする方法です。 🎜>絶対に。 Captchaは、連絡先フォーム、登録フォーム、ログインフォームなど、WordPressサイトの任意のフォームと統合できます。これにより、サイト全体に追加のセキュリティとスパム予防が提供されます。

    CaptchaがWordPressコメントフォームに取り組んでいない場合はどうすればよいですか?最初に、プラグインが適切にインストールされ、アクティブ化されていることを確認します。問題が続く場合は、ブラウザのキャッシュをクリアしたり、他のプラグインを無効にして競合があるかどうかを確認してみてください。アクセス可能で、オーディオキャプチャまたはロジックベースのCaptchaを使用することを検討してください。これにより、ユーザーに簡単な質問に答えるように依頼します。また、CaptchaプラグインがWebコンテンツアクセシビリティガイドライン(WCAG)に準拠していることを確認してください。

    キャプチャはあらゆる種類のスパムに対して効果的ですか?

    キャプチャはボット生成スパムの防止に非常に効果的ですが、人間で生成されたスパムに対してそれほど効果的ではないかもしれません。このために、コメントモデレーションや特定の単語やIPアドレスのブラックリストなどの追加の測定値を使用することを検討してください。

    CaptchaをWordPressコメントフォームと統合することはサイトのパフォーマンスに影響しますか?サイトのパフォーマンスに大きく影響しないでください。ただし、他のプラグインと同様に、いくつかのリソースを使用します。スローダウンに気付いた場合は、軽量のCaptchaプラグインを使用するか、他の方法でサイトのパフォーマンスを最適化することを検討してください。プラグインを使用せずにCaptchaをWordPressコメントフォームに統合することができます。これは、高度なコーディング知識が必要であり、ほとんどのユーザーには推奨されません。プラグインを使用すると、プロセスが簡素化され、Captchaが正しく実装されるようになります。これにより、最新のセキュリティ機能があり、プラグインがWordPressの最新バージョンと互換性があることが保証されます。

以上がキャプチャをWordPressコメントフォームと統合しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
WordPressを使用する際のセキュリティ上の考慮事項は何ですか?WordPressを使用する際のセキュリティ上の考慮事項は何ですか?Apr 29, 2025 am 12:01 AM

tosecureawwordpresssite、soflowthesesteps:1)定期的にwordpresscore、themes、およびpluginstopatchvulnerabilities.2)usestrong、usestrong、usestrong、sonsandenabletototothentication.3)optformanagedagedwordpresshosting arehoredhoredhoredhored hosting withebapplicationfirewaal

WordPressは他のWebサイトビルダーとどのように比較されますか?WordPressは他のWebサイトビルダーとどのように比較されますか?Apr 28, 2025 am 12:04 AM

wordpressexexexexexcelsoverwebsitebuildersduetoits ffficability、scalability、andopen-sourcenature.1)それは、aversatilecmswitextensive sustomizationoptionsviathemesandplugins.2)その学習中心部のスチッピアベッタービューターフルフルフルフルフルフルフルカンセーズ。3)

2025年に開発者が使用できる5つのWordPressプラグイン2025年に開発者が使用できる5つのWordPressプラグインApr 27, 2025 am 08:25 AM

2025年のウェブサイト開発のための7つの必須ワードプレスプラグイン 2025年に一流のWordPress Webサイトを構築するには、速度、応答性、およびスケーラビリティが必要です。 これを効率的に達成することは、しばしば戦略的なプラグインの選択にかかっています。 この記事Highlig

WordPressは何のために使用しますか?WordPressは何のために使用しますか?Apr 27, 2025 am 12:14 AM

wordpresscanbeusedpurposesbeyondblogging.1)e-ocommerce:withwoocommerce、itcanbecomeafulloninestore.2)メンバーシップサイト:Pluginslikememberpressenable clusivecontentareas.3)ポートフォリオソイト:ThemeslikeasieasiestraololowStunnningStunnningStunnningStunnningStuntunnneDayOutssuntunnneaTuntunnnedrayOutuntuntuntunnnedraySuts

WordPressはポートフォリオWebサイトを作成するのに適していますか?WordPressはポートフォリオWebサイトを作成するのに適していますか?Apr 26, 2025 am 12:05 AM

はい、wordpressisexcellentforcreatingportfoliowebsite.1)itoffers numersportfolio cilems like'astra'astra'foreasycustomization.2)プラグインエレメントレメントレディングの装飾、思想的な態度環境を

Webサイトをゼロからコーディングする上でWordPressを使用することの利点は何ですか?Webサイトをゼロからコーディングする上でWordPressを使用することの利点は何ですか?Apr 25, 2025 am 12:16 AM

wordpressisadvasteousovercodingawebsitefromscratchdueto:1)easeofuseandfasterdevelopment、2)柔軟性と吸収性、3)strongCommunitySupport、4)組み込みインセンアンドマークティングツール、5)費用対効果、6)レシュリティアップデート

WordPressがコンテンツ管理システムになっている理由は何ですか?WordPressがコンテンツ管理システムになっている理由は何ですか?Apr 24, 2025 pm 05:25 PM

wordpressisacmsduetoitseaseaseofuse、customization、usermanagement、seo、andcommunitysupport.1)ofssextensiveationization throughthemesandplugins.3)ofsiscontensiveativeizationization withintentmanagement withintententmanagement with inting ustomization.3)revisustusersandpermissions.4)拡張型を提供します

WordPressにコメントボックスを追加する方法WordPressにコメントボックスを追加する方法Apr 20, 2025 pm 12:15 PM

WordPress Webサイトでコメントを有効にして、訪問者にディスカッションに参加し、フィードバックを共有するプラットフォームを提供します。これを行うには、次の手順に従ってください。コメントを有効にします。ダッシュボードで、設定に移動してgt;議論し、[コメントを許可]チェックボックスを選択します。コメントフォームの作成:エディターで、[ブロックの追加]をクリックし、コメントブロックを検索してコンテンツに追加します。カスタムコメントフォーム:タイトル、ラベル、プレースホルダー、ボタンテキストを設定して、コメントブロックをカスタマイズします。変更を保存します:[更新]をクリックしてコメントボックスを保存し、ページまたは記事に追加します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール