WordPress

【スパム対策】Contact Form 7でURLの入力はエラーにする方法

WordPressのサイトでお問い合わせフォームを実装する場合、「Contact Form 7」などのプラグインを使えば簡単ですが、スパム対策をしていなければ、けっこうスパムメールがきます。

営業メールや海外からのスパムなどいろいろありますが、そのほとんどはURLが入力されているケースが多いので、URLの入力ができないようにしておけば、ある程度のスパムメールを防げるかもしれません。

URLの入力はエラーにする

スパムメールの多くは、URLが入力されているため、お問い合わせの入力にURLが含まれる場合はエラーになるようにしてみます。

functions.phpに以下のように記述すればOKです。

function wpcf7_validate_custom($result, $tag) {
 $value = str_replace(array(PHP_EOL,”),”,esc_attr($_POST[‘your-message’]));
 if (!empty($value)) {
  if (preg_match(‘/https?:\/{2}[\w\/:%#\$&\?\(\)~\.=\+\-]+/’, $value)) {
   $result[‘valid’] = false;
   $result[‘reason’] = array(‘your-message’ => ‘URLは入力できません’);
  }
 }
 return $result;
}
add_filter(‘wpcf7_validate’, ‘wpcf7_validate_custom’, 10, 2);

※全角スペースが含まれているため、コピペで使用する際はご注意ください。

これで、URLが含まれていないかチェックすることができ、URLが含まれている場合は「URLは入力できません」というエラーが出ます。

「your-message」は任意の名前ですが、Contact Form 7でフォームを設置する際のtextareaの名前と同じにしてください。

スパム対策として他にできること

今回紹介した方法も一定の効果はあるかもしれませんが、それでもスパムメールがくる可能性はあります。

他にできることとしては、入力できる文字数を制限するとか、英語のみの入力をエラーにする方法もあります。

よりしっかりしたスパム対策を行うなら「Akismet」というプラグインを使う方法やreCAPTCHAを設定する方法がいいかもしれません。

関連記事
【スパム対策】Contact Form 7で英語のみの入力はエラーにする方法

WordPressを始めるならエックスサーバーがおすすめ

WordPressでブログやアフィリエイトを始めたい、良いレンタルサーバーに乗り換えたいという方にはエックスサーバーがおすすめです。

その理由は以下の通り。

  • 国内シェアNo.1のレンタルサーバー
  • サポートの品質が高い
  • 表示速度・処理速度が速い

WordPressが学べるおすすめのスクール

WordPress関連の本もありますし、ネット上にはたくさんの情報がありますが、短期間でWordPressも含めたWeb制作のスキルを身につけたい方にはプログラミングスクールがおすすめです。

TechAcademy

  • WordPressのサイト制作の流れが理解できる
  • WordPressでオリジナルサイトが作れるようになる
  • プラグインやカスタムフィールドを学べる
  • オンラインで完結
  • 講師・メンターが現役エンジニア

関連記事
WordPressが学べるおすすめのプログラミングスクール

Leave a Comment