Contact Form 7 スパム問い合わせ対策!ホームページ(ワードプレス)の問い合わせフォームを使った海外(外国語)スパムをゼロにする方法

wordpress

ワードプレスを利用したホームページに設置しているお問い合わせフォームを通じて海外から送られてくるスパムをシャットアウトするには、問い合わせフォームの記入事項に日本語が含まれていない場合は送信をできないようにすることが最善策です。

お問合せフォームの記入事項に日本語(ひらがな)が含まれていない場合は送信できないようにする

以下のコードをコピーして、ワードプレスのテーマの functions.php に貼り付けてください。

以下、Contact Form 7を使っている場合を想定しています。

//メールフォームの textarea にひらがなが無ければ送信できない(contact form7)
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
 
function wpcf7_validation_textarea_hiragana($result, $tag)
{
    $name = $tag['name'];
    $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
 
    if ($value !== '' && !preg_match('/[ぁ-ん]/u', $value)) {
        $result['valid'] = false;
        $result['reason'] = array($name => 'エラー / この内容は送信できません。');
    }
 
    return $result;
}

ワードプレスのfunctions.php の場所

functions.phpはワードプレスの「管理メニュー」から「外観」→「テーマエディター」→「テーマのための関数(functions.php)」と進んだところにあります。

ここには「子テーマ」の functions.php が表示されているはずです。コードを書き加えるときはできるだけ「子テーマ」にした方が良いです。

まとめ

Contact Form 7 で日本語(ひらがな)を含まない迷惑なお問合せ(スパム)を完全にシャットアウトするためには、このページで紹介したコードを functions.php に書き加えれば対策できます。

ひらがなを含まない問い合わせは、すべて送信できなくなります。

コメント

タイトルとURLをコピーしました