Contact form7のスパム防止対策

TIPS
この記事は約2分で読めます。

最近は海外からのスパムが非常に増加していて、困っている方も多いのでは。
私もその一人です。「reCAPTCHA」も設定するとある程度解決はするのですが、普通にメールフォームからメールを送りたい方には、負担になります。
何かとイタチごっこのスパム対策ですが、Contact form7を使っている方で、とりあえずこれをやってみてください、スパムが少なくはなります。(※日本語向け対策です)

設定方法

function.php

function wpcf7_validate_spam_message( $result, $tag ) {
  $value = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-name']));
  if (!empty($value)) {
    if (preg_match('/^[!-~]+$/', $value)) {
      $result['valid'] = false;
      $result['reason'] = array('your-name' => '日本語で入力してください');
    }
  }
  $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 );

Contact form7のフォーム入力フィールド名が「your-message」「your-name」の場合になります。(※初期設定フィールド)
どちらか一方のフィールドではなく「your-message」「your-name」ともに日本語(2バイト)が使われていない場合は、送信することが出来ません。

mocci

WEB制作会社を経営しています。
2001年からこの業界に携わりホームページ制作・マーケティング全般、たまに映像制作を行っています。
WEB制作ビギナーさんでも分かりやすいブログを目指してます。
ガジェット・アウトドア・Python好き♪

mocciをフォローする

コメント