WordPress の Contact Form 7 プラグインでスパム回避のために Akismet を連携させてみた

背景

最近会社のサイトに設置した Contact Form 7 で作られている問い合わせフォームへのスパムが1日に10数通届くというメンドクサイ状況になっていました。

解決方法

さすがに手動でスパム判定するのも面倒ですので、何か仕組みを作ろうと思って最初に取り組んだのが、Akismet との連携です。

Akismet は WordPress に標準で組み込まれているスパムフィルターのプラグインです。
プラグインを有効化し、WordPress.com で取得した API キーを設定するだけで利用できます。

組み込む手順

Contact Form 7 で Akismet と連携できる項目は、
「送信者の名前(author)」「送信者のメールアドレス(author_email)」「送信者の URL(author_url)」の3つです。

これらをフォームのタグに指定していきます。

  1. WordPress の「お問い合わせ|コンタクトフォーム」メニューから、編集したいフォームを選択します。
  2. フォームのタグに、オプションを追記します。
    例)
    [code lang=’text’] 名前のチェック:[text* your-name akismet:author] メールのチェック:[email* your-email akismet:author_email] URL のチェック:[text your-url akismet:author_url] [/code]

この機能がきちんと動いているかテストするためには、送信者に「viagra-test-123」を指定します。

参考:本家の説明

注意点

このオプションを指定した場合、「akismet:」で指定した項目はすべて Akismet に一度送られます。
そのため、送信ボタンを押してから反応が返ってくるのに時間がかかる場合があります。

まとめ

Akismet をスパムフィルターに利用する事で、最近増えてきた日本語でのスパムなどにも対応できました。
パフォーマンスに影響を及ぼすオプションですが、用途に合わせて適宜利用するのが良いと思います。

え?Webサイトのバックアップ、してないの!?

いざという時には復旧までしてくれる
『ワードプレス外部バックアップサービス』

■3つの特長
・自分でやらなくて良い
・いざという時の復旧付き
・外部サーバーにバックアップ

コメントを残す