最近このブログの問い合わせフォームから「ヴィトンを買ってください!安いですよ!」的な英文メールが届くようになりました。

ぼくヴィトンよりプラダの方が好みですし、そもそもこんなメールはお断りしたいところ。
CAPTCHA(ぐにゃぐにゃの画像のヤツ)を使うのはなんか屈した気がします。
そこで、Japanese Onlyなサイトには鉄板の方法「本文に日本語が含まれていない時はエラーを返す」ようにしました。

実装方法

functions.phpに以下を記述するだけ。

日本語といってもカタカナのない文章は十分ありえますし、幼女からのメッセージには漢字がないかもしれません。なので「ひらがながなければエラーを返す」ようにしました。
(カタカナだけとか昭和な宇宙人的な考えはやめてくださいね)

編集箇所

5行目:’textarea’ と 7行目:’入力エラーです。’ の2箇所を適切変更します。

7行目:’入力エラーです。’

日本語が含まれていなかった時に表示されるメッセージです。シングルクォーテーションを入力するとエラーになりますので気をつけて。

5行目:’textarea’

フォームのレイアウト設定のところで確認してください。
たとえばこのブログなら…

といった具合。

まとめてきな

まだ効果のほどは測っていませんが、減ればいいなぁと。しばし様子みます。

そしてデフォルトのフォームだと有効になっていないのですが、おなじみのスパムフィルタ、Akismetを有効にするのはかなり有効ですよと。
WordPressにデフォルトでインストールされているAkismetプラグインと連携しているので、そっちのAPIの設定さえ終わっていれば、フォーム編集画面のタグの作成でもAkismet (オプション)にチェックを入れてタグを再設定するだけで簡単にスパムフィルタリングが行えます。

Akismet によるスパムフィルタリング

Akismet によるスパムフィルタリング

はてブ数

http://contactform7.com/ja/spam-filtering-with-akismet/

スパムフィルタリングプラグインである Akismet との連携はその中でも重要な位置を占めます。この記事ではコンタクトフォームに Akismet を実装する手順について説明します。

Special Thanksてきな
Contact Form 7で確認用メールアドレスの入力フォームを加える方法

Contact Form 7で確認用メールアドレスの入力フォームを加える方法

はてブ数

http://hello.lumiere-couleur.com/smilkobuta/2010/12/02/contac...

Contact Form 7で確認用メールアドレスの入力フォームを加える方法