WordPressのコンタクトフォーム7は優秀なプラグインである。しかし、最近とくに英文のみのスパムメールが急増して困っていた。「Akismet」を使えばスパム問題を解決できそうだが、商用サイトでは無料で使えない。Googleの「reCAPTCHA」を使う方法もよさそうだったが、自分のサイトでない場合には設定が面倒そうである。
そこで、今回はWordPressの「functions.php」をカスタマイズして日本語のひらがなを含まない文章の場合は送信ができないようにした。
スパム送信対策のカスタマイズ
「functions.php」をカスタマイズする
WordPressの「functions.php」は、
/wp-content/themes/********/functions.php
というように、テーマのフォルダに入っています。「********」の部分はテーマ名になっていることが多いです。たいていのワードプレスには複数のテーマが入っているので、修正したい「functions.php」が入っているテーマを間違えないように注意しましょう。
また、「functions.php」は重要なファイルで、誤って削除したり間違った修正をすると、ワードプレスが動かなくなってしまうことがあります。カスタマイズする場合は必ずバックアップをとってから行うようにしてください。
「functions.php」をカスタマイズして「ひらがな」を含まない文章は送信できなくする
エディタで「functions.php」を開き、最末尾に以下のソースを貼り付け、FTPでアップロードするだけでOK。
カスタマイズは以下のようにした。
▼実際に使用したソース
//– Contact Form 7 英語のみの投稿は送信できない
add_filter(‘wpcf7_validate_textarea’, ‘ktzw3’, 10, 2);
add_filter(‘wpcf7_validate_textarea*’, ‘ktzw3’, 10, 2);
function ktzw3($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;
}
英文だけで入力し「送信」をクリックすると、「日本語で入力おねがいします」と警告が表示される。さらにフォーム下部に「入力内容に問題があります。確認して再度お試しください。」と表示され、送信することができなくなる。
▼実装テストをしたコンタクトフォーム
https://sindan.org/contactform/
※現在はこの方法ではなくリキャプチャを使う方法に変更しています
参考にした記事は以下のとおり
https://tomozo-music.net/html/2019/スパム対策-contact-form-7-英語のみ、日本語が含まれていな/
今のところうまくいっているようである。しばらくこれで様子を見ることにする。
「functions.php」をカスタマイズして「日本語」を含まない文章は送信できなくする
別の方法も試してみました。
上記の方法だと「ひらがなを含まない」ということなので、漢字やカタカナだけの場合も判定されてしまいます。そこで、ひらがなだけでなく漢字やカタカナも含んだ「日本語を含まない」という判定方法も試してみました。対象とするのは本文(内容)の欄だけです。
/**
* spammail
*/
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 );
この方法は
https://kodocode.net/wordpress-plugin-contactform-secure/
を参考にしました。
ただし「your-subject」の部分を「your-message」に変更しています。
「your-subject」だと題名部分なので、題名部分をフォームに入れていない場合は効果がないので、本文内容にあたる「your-message」に変更しました。変更箇所が2箇所あるのでご注意を。
オリジナルのデザインテーマを利用しているワードプレスサイトで試したところうまくいきました。
注意>ワードプレスのテーマをアップデートした場合は再設定が必要です
なお、このWordPressの「functions.php」をカスタマイズする方法には欠点があります。
それはワードプレスのテーマを最新版にアップデートすると「functions.php」が上書きされることがあるからです。
その場合は、上記の設定はすべて消えますので、あらためて設定してください。
バックアップファイルは時系列で保存しておきましょう、ということですね。
この記事を書いた遠田幹雄は中小企業診断士です
遠田幹雄は経営コンサルティング企業の株式会社ドモドモコーポレーション代表取締役。石川県かほく市に本社があり金沢市を中心とした北陸三県を主な活動エリアとする経営コンサルタントです。
小規模事業者や中小企業を対象として、経営戦略立案とその後の実行支援、商品開発、販路拡大、マーケティング、ブランド構築等に係る総合的なコンサルティング活動を展開しています。実際にはWEBマーケティングやIT系のご依頼が多いです。
民民での直接契約を中心としていますが、商工三団体などの支援機関が主催するセミナー講師を年間数十回担当したり、支援機関の専門家派遣や中小企業基盤整備機構の経営窓口相談に対応したりもしています。
保有資格:中小企業診断士、情報処理技術者など
会社概要およびプロフィールは株式会社ドモドモコーポレーションの会社案内にて紹介していますので興味ある方はご覧ください。
お問い合わせは電話ではなくお問い合わせフォームからメールにておねがいします。新規の電話番号からの電話は受信しないことにしていますのでご了承ください。
【反応していただけると喜びます(笑)】
記事内容が役にたったとか共感したとかで、なにか反応をしたいという場合はTwitterやフェイスブックなどのSNSで反応いただけるとうれしいです。
遠田幹雄が利用しているSNSは以下のとおりです。
facebook https://www.facebook.com/tohdamikio
ツイッター https://twitter.com/tohdamikio
LINE https://lin.ee/igN7saM
チャットワーク https://www.chatwork.com/tohda
また、投げ銭システムも用意しましたのでお気持ちがあればクレジット決済などでもお支払いいただけます。
※投げ銭はデジタルコンテンツ購入という通販のしくみにしました。
※投げ銭は100円からOKです。シャレですので笑ってください(笑)