WordPress

WordPress初心者向け:Contact Form 7でお問い合わせフォームを作る!簡単スパム対策も解説

あなたのWordPressサイトに、簡単に導入できるお問い合わせフォーム「Contact Form 7」を設置しましょう。これは初心者にも扱いやすく、サイトに必要な機能を手軽に追加できます。
WordPressサイトにContact Form 7(お問い合わせフォーム)を設置し、スパムメール対策の方法をご紹介します。

Contact Form 7とは?

Contact Form 7は、WordPressサイトにお問い合わせフォームを追加するためのプラグインです。以下のリンクからダウンロードできます。
Contact Form 7

プラグインのインストール

WordPressの管理画面から「プラグイン」→「新規追加」→「検索キーワード」に「Contact Form 7」と入力します。以下の赤枠「Contact Form 7」が表示された「今すぐインストール」ボタンをクリック後、「有効化」ボタンでプラグインをアクティブにしましょう。

Contact Form 7のインストールイメージ

フォームの設定

WordPress管理画面の左メニューの「お問い合わせ」→「新規追加」画面から新しいフォームを作成できます。フォームの内容、送信先メールアドレス、自動返信メール、エラーメッセージなど、必要な設定を行います。
「フォームの入力内容」「問い合わせメール送信先」「自動返信メール」「入力エラーメッセージ」等を設定後、表示された赤枠箇所のショートコードをコピーし任意のページ(固定、投稿ページ等)にペーストするとフォームが表示されます。

Contact Form 7(お問い合わせフォーム)の設置イメージ

スパムメール対策1:フォーム項目に「承諾確認」チェックを追加

フォームに「承諾確認」のチェックボックスを追加することで、スパムメールを防ぎます。フォームの設定画面で「承諾確認」を選び、同意内容とオプションを設定します。

手順は以下の通りです。

フォーム項目に「承諾確認」チェックを追加イメージ
  1. フォームタブから「承諾確認」をクリック
  2. 同意内容のテキストを入力
  3. オプションの「チェックボックス」を任意選択にするのチェックを外す
  4. 「タブを挿入」をクリック
  5. フォーム項目に「承諾確認」チェックとテキストが追加されます

スパムメール対策2:フォーム項目の「メッセージ本文」に日本語入力必須化

メッセージ本文の入力で日本語の使用を必須にすることも、スパム対策の一つです。海外からのスパムメールでは入力内容が英数字のみが多いのでフォームの入力項目の「メッセージ本文」が英数字のみだった場合入力エラーにします。
これは「functions.php」に特定のコードを追加することで実現できます。コードは以下の通りです。
functions.phpに以下を追記します。

function wpcf7_validate_spam_message( $result, $tag ) {
  $value = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-message']));
  if (!empty($value)) {
    if (preg_match('/^[!-~]+$/', $value)) {
      $result['valid'] = false;
      $result['reason'] = array('your-message' => '日本語で入力してください');
    }
  }
  return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_spam_message', 10, 2 );

フォーム項目の「メッセージ本文」に日本語文字を入力必須にするイメージ

フォーム項目の「メッセージ本文」が英数字のみだった場合、エラーメッセージが表示されます。英文のみではお問い合わせ出来なくなりスパムメール対策になります。

まとめ

これであなたのサイトに、使いやすいお問い合わせフォームが設置でき、スパムメールからも守れます。初心者でも簡単にできるので、ぜひ試してみてください!

 
※流用される場合は自己責任でお願いします。