Contact Form 7でスパムメール対策(reCAPTCHA)

morimori
main_img

reCAPTCHAとは?

reCAPTCHAは、Webフォームなどに登録する際、botなどによる悪質なアクセスからWebサイトを守るための機能です。

詳細↓

「reCAPTCHA」って?スパム対策に効果的なreCAPTCHAをフォームに入れてみた

2018年10月29日にGoogleからreCAPTCHAの新バージョンreCAPTCHA v3が正式公開されたのでこちらが主流になる。

特徴は画像認証がなくなったこと。

 

Contact Form 7にreCAPTCHA v3を入れる

①GoogleのサイトでreCAPTCHAを取得

②適用したいフォームのHTMLにreCAPTCHAのJavaScriptを組み込む

③サーバー側でreCAPTCHAが送信したトークンをチェック

④アクションとスコアによりbot判定時の動作などを設定

手順詳細↓

https://contactform7.com/ja/recaptcha/

 

フォームにだけreCAPTCHA バナーを表示する

function.phpに以下のコードを入れる

※is_page(‘contact‘)のcontactには表示させたいページのスラッグ名を入れる

【PHP】

add_action( 'wp_enqueue_scripts', function() {
    if(is_page('contact')) return;
    wp_deregister_script('google-recaptcha');
}, 20);

参考↓

https://blanche-toile.com/web/wordpress-contact-form-7-spam-recaptcha

 

上記のやり方でうまくいくのは、Contact Form 7のバージョンが5.1以上の時。(2021年4月6日現在)

それ以下のバージョンの時は以下の方法を試す。

 

Contact Form 7(5.1未満)にreCAPTCHA v3を入れる

プラグイン「Invisible reCaptcha for WordPress」を入れる

手順↓

プラグインInvisible reCAPTCHAを使ってreCAPTCHA v3のバッジを邪魔にならずに表示させる方法

※GoogleのサイトでreCAPTCHAを取得する手順は一緒

Contact Form 7のインテグレーションではなく、Invisible reCaptcha for WordPressでサイトキーなどの設定を行う

この場合、function.phpに記述を入れなくても、Contact Form 7導入ページにのみ、reCAPTCHAが表示される

導入事例
【Invisible reCaptcha for WordPressで導入】
タイタン大阪お問い合わせフォーム:https://titan-art.com/contact/
【Invisible reCaptcha for WordPressを使わず導入】
タイタン東京お問い合わせフォーム:https://tokyo.titan-art.com/contact/
【更新履歴】
2021.04.05 記事を公開しました。