WordPressの問い合わせフォームにCAPTCHAを導入する方法

プログラム→HTML Webサイト管理

WordPressで運営しているWebサイトには、プラグイン “Contact Form 7” を使って問い合わせフォームを設置していますが、スパムが多くなってきたので対策としてCAPTCHAを導入してみました。

CAPTCHAとは?

Webサイトの入力フォームなどによく使われ、入力者が人間である(コンピューターでない)ことを確認するための手法です。例えば「私はロボットではありません」と言ったようなチェックボックスがCAPTCHAです。

WordPress→Contact Form 7→reCAPTCHA

その他にも、表示された文字を入力させたり、表示された画像を選択させたりと高度なものがありますが、今回は「私はロボットではありません」のチェックボックスを表示してみることにしました。

CAPTCHAの導入手順

今回はContact Form 7が標準としているreCAPTCHAを用います。reCAPTCHAはGoogleが提供しており、利用にはGoogleアカウントとAPIキー(Site keyとSecret key)の取得が必要となります。

APIキーを取得する

  1. ブラウザより reCAPTCHA にアクセスし、必要事項の入力および選択をした上で問題が無ければ『Register』をクリックします。

    Web→Google→reCAPTCHA

    入力項目 “Label” は識別用の名前なので任意です。
    選択項目 “Choose the type of reCAPTCHA” は『reCAPTCHA V2』を選択しました。
    入力項目 “Domain” はreCAPTCHAを利用するWebサイトのドメインを入力します。
  2. 表示された “Site key” と “Secret key” を確認します。

    Web→Google→reCAPTCHA

フォームに追加する

  1. WordPressのContact Form 7にある “インテグレーション” より『キーを設定する』をクリックします。

    WordPress→Contact Form 7

  2. 表示された入力ボックスに先に取得した “Site key(サイトキー)” と “Secret key(シークレットキー)” を入力し『保存』をクリックします。

    WordPress→Contact Form 7

  3. 次に “コンタクトフォームの編集” より以下のショートコードを追記します。
    [recaptcha]
    

    WordPress→Contact Form 7→コンタクトフォームの編集

    追記する場所は任意です。
  4. 問い合わせフォームにCAPTCHAが表示されます。

    WordPress→Contact Form 7→reCAPTCHA

WordPressの問い合わせフォームにCAPTCHAを導入するやり方は以上です。

以前は一日に数回のスパムが届いていましたが、CAPTCHAを導入してからはほとんど届かなくなったので一定の効果はあるようです。