WordPressでブログを立ち上げたら、まず準備しておきたいのが「お問い合わせフォーム」ですよね。
Googleアドセンスの審査やAmazonアソシエイトの申請でも「問い合わせ手段があること」は重要項目と言われていますし、サイトの信頼性のためにも早めに作っておきたいところです。
ただ、問い合わせフォームを設置した途端にやってくるのが「海外からの大量のスパムメール」なんですよね……。
今回は、WordPressの人気無料テーマ「Cocoon」でお問い合わせフォームをサクッと設置し、さらに「ひらがなが入っていない投稿(海外スパム)を自動で弾く最強の対策」を施すまでの手順を実体験ベースでまとめました!
1. 今回の作業の全体像と事前準備
作業自体は15分ほどで終わります。特別なプラグインを何個も入れる必要はありません。
今回使うものは以下の2つだけです。
- Contact Form 7(定番の問い合わせフォーム作成プラグイン)
- Cocoon Child(子テーマ)の
functions.php(ひらがな判定コードの記述用)

【重要】作業前にこれだけは確認!
ひらがな判定のコードを追加する際、テーマのプログラムファイル(functions.php)を少しだけ触ります。 万が一の入力ミスで画面が真っ白になるのを防ぐため、必ず「Cocoon Child(子テーマ)」が有効化されていることを確認してから作業に入りましょう!
2. 【Step 1】Contact Form 7で問い合わせフォームを作る
まずはベースとなるお問い合わせフォームを作成します。ここは本当に一瞬で終わりました。
- WordPress管理画面の「プラグイン」>「新規プラグイン追加」を開く
- 検索窓に
Contact Form 7と入力してインストール&有効化 - 管理画面に追加された「お問い合わせ」>「コンタクトフォーム」を開く

最初から「コンタクトフォーム 1」という完成形が用意されているので、そこに表示されているショートコード([contact-form-7 id="..." title="... みたいな文字列)をコピーします。"]
あとは、固定ページを新規作成してタイトルを「お問い合わせ」にし、本文欄にコピーしたショートコードをペーストして公開するだけです。
フッターのメニューにお問い合わせページのリンクを追加すれば、これだけで基本的なフォームの設置は完了です!
3. 【Step 2】海外スパムを撃退する「ひらがな判定」を追加する
フォームを設置して一安心……と言いたいところですが、そのままにしておくと海外のボットから英語だけのスパムメッセージが届くようになります。
画像認識の「reCAPTCHA」を導入する手もありますが、訪問者に「信号機の画像を選んでください」とやらせるのも少し面倒ですよね。
そこで今回は、「本文に『ひらがな』が1文字も含まれていない投稿は、スパムとみなして送信エラーにする」というカスタマイズを行いました。
日本の読者なら、問い合わせ本文にひらがなを1文字も使わないことはまずありません。一方で海外の自動送信ボットは100%英語なので、これだけでスパムをほぼ全滅させることができます!
実際に貼り付けたコード
WordPress管理画面の「外観」>「テーマファイルエディター」を開き、右上の選択欄で「Cocoon Child」を選びます。 「テーマのための関数 (functions.php)」を開き、一番下に以下のコードをそのまま貼り付けました。
PHP
// Contact Form 7 の本文に「ひらがな」が含まれていない場合はエラーにする
add_filter('wpcf7_validate_textarea', 'custom_textarea_validation', 10, 2);
add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation', 10, 2);
function custom_textarea_validation($result, $tag) {
$name = $tag->name;
$value = isset($_POST[$name]) ? trim($_POST[$name]) : '';
if ($value !== '') {
// ひらがなが1文字も含まれていないかチェック
if (!preg_match('/[ぁ-ん]/u', $value)) {
$result->invalidate($tag, 'スパム対策のため、本文には「ひらがな」を含めてご入力ください。');
}
}
return $result;
}
コードを貼ったら、一番下の「ファイルを更新」をクリックして保存します。

4. 実際にテストしてみた結果と注意点
設定が終わったので、自分のサイトのお問い合わせページからテスト送信をしてみました。
- テスト1:英語だけで送信してみる
- 本文:「Hello, this is a spam test message.」
- 結果: 送信ボタンを押すと「スパム対策のため、本文には『ひらがな』を含めてご入力ください。」と赤いエラーが出て、しっかりブロックされました!
- テスト2:日本語(ひらがな入り)で送信してみる
- 本文:「テスト送信です。よろしくお願いします。」
- 結果: 問題なく送信完了のメッセージが表示されました!
やってみて分かった注意点・迷ったポイント
functions.php を編集するとき、全角のスペースが入ってしまったり、コードのコピペ位置を間違えるとエラーが出ることがあります。 コードを貼り付けるときは、必ず既存のコードの末尾(一番最後の行)改行を入れてから貼り付けるのがコツです!
5. まとめ:初期設定のついでにやっておくのが一番楽!
お問い合わせフォームの設置とスパム対策についてまとめます。
- Contact Form 7を使えば5分でお問い合わせページが作れる
- ひらがな判定コードを
functions.phpに入れるだけで、読者に負担をかけず海外スパムを激減できる - 作業時は必ず「Cocoon Child」で編集する
スパムメールが毎日届くようになってから対策するのはストレスですし、重要な問い合わせがスパムに埋もれてしまう原因にもなります。
ブログを立ち上げたばかりの方や、Cocoonでお問い合わせフォームを作った方は、ぜひこの「ひらがな判定」もセットで設定してみてくださいね!



コメント