WordPressの問い合わせフォームのスパム対策

WordPressの投稿フォームWordPressで問い合わせフォーム「Contact Form 7」に対するスパム対策として、Googleリキャプチャ(Recaptcha) v3」という仕組みを導入する方法のポイントを簡単に記載する。詳細は、参照にしたWebページ(下記)を参照するとよい。

Googleリキャプチャ(reCAPTCHA)の公式から管理コンソールに進む
ラベル名は、適宜入力
タイプにv3を選択
ドメイン(対象となるWebサイトのドメイン)を入力して「送信」
サイトキーとシークレットキーを控えておく
アナリティクスに移動(管理画面のトップに移動、ま反映するまで2~3日かかるとのこと)

WordPressダッシュボード>お問い合わせ>インテグレーション>reCAPTCHA>セットアップ
上記で控えたサイトキーとシークレットキーを入力して保存

フォームを実装したページだけでreCAPTCHA v3を読み込みたい場合は、プラグインFunctionality をインストール(プログイン>新規追加:Functionality を検索し、インストール、有効化)
プラグイン>インストール済みプラグインに移動、対象となるWebサイト名がプラグインになった行が追加されているので、これを有効化
出来たメニューのEdit Functions(フラグインエディター)を開き、こちらのfunctions.phpに、下記を追加

<?php //Contact Form 7で作られたフォームのページじゃなければreCAPTCHAを読み込みをキャンセル //(デフォルトでContact Form 7にキー登録すると全ページreCAPTCHAが読み込まれてしまう) add_action( ‘wp_enqueue_scripts’, function (){ global $post; $valid_recaptcha = false; $content = get_post()->post_content; if($content != null){ //Contact Form 7のショートコードが存在する if(has_shortcode($content, ‘contact-form-7’)) { $valid_recaptcha = true; } } //ショートコードが存在しなければreCAPTCHAの読み込みをキャンセルする if($valid_recaptcha == false){ wp_deregister_script( ‘google-recaptcha’ ); } }, 100);

参考にしたWebページ
【完全スパム対策】問い合わせフォームContact Form 7(参照2022/12/7)
Googleリキャプチャ(reCAPTCHA)v2/v3の導入 ~WordPressサイトにも対応~(参照2022/12/7)
【WordPress】functions.phpを直接編集しなくて済むプラグイン!Functionality(参照2022/12/7)