こんばんはエンジニアの眠れない夜です。
Contact Form 7 を使っていてスパムに悩まされる事はありませんか?
今回はContact Form 7で簡単にできるスパム対策をご紹介します。
※ 間違っているところなどありましたらご指摘くださいm(_ _)m
Contact Form 7 でスパム対策
コンタクトフォーム7をブログに設置しているとスパムが大量に来るようになります。
スパムが来始めると本当に必要な問い合わせが埋もれてしまって、業務に支障をきたしてしまいますよね。
そこで、今回は入力フォームに日本語が含まれているかをチェックするプログラムを追加してスパム対策を行います。
コピペでできるので是非試してみてください(^^)v
Contact Form 7 で日本語入力判定
Contact Form 7 で日本語判定を追加するにはテーマフォルダーの中にある functions.php
というファイルを編集します。
場所は /public_html/wp-content/themes/テーマ名/functions.php
にあります。
日本語判定を追加する方法は、次のコードをfunctions.php
の一番最後にコピー・アンド・ペーストでするだけです。
プログラムが結構な行数なので見た瞬間に嫌な気持ちになるかもしれませんが、コピペで大丈夫なので安心してください。
ただし、このコードを有効にするには1つだけ条件があります。
それは、Contact Form 7 に [text* hurigana] という項目が使われていることです。
このようにhurigana
と言う項目があれば上記のプログラムは正常に機能します。
hurigana をコンタクトフォーム7の項目に使いたくない場合は?
中にはhurigana
と言う項目を問い合わせの項目に使いたくないと言う方もいますよね?
そんな方のために簡単に編集できる方法をお伝えします!
上記のプログラムの中で hurigana
を検索するとこのように5カ所に使われていることがわかります。
hurigana
をあなたが利用している text のタグ名に変更すれば良いだけです。
例えばあなたが [text* yomigana] という項目を使っている場合はこのように変更すれば大丈夫です。
textareaで日本語入力チェックをする方法は?
今まで紹介した方法は項目がtext
である必要があります。textarea
に対して日本語入力チェックを行いたい場合は、プログラムのはじめの2行を wpcf7_validate_text
から wpcf7_validate_textarea
に変更するだけで大丈夫です。
改行やアルファベット、漢字が含まれている場合でも「ひらがな・カタカナ」が含まれていれば日本語判定をクリアします。
お問い合わせにコンタクトフォーム7を利用している場合は本文に日本語で日本語判定を利用すると効果的です。
ひらがな・カタカナ以外にも漢字で入力チェックしたい場合は?
下の方の行に[ぁ-んァ-ヶ]
という文字が見えます。
if(!preg_match(“/[ぁ-んァ-ヶ]/u”, $value)) {
この部分を [亜-熙]
このようにすると漢字が含まれているかをチェックできます。
[亜-熙ぁ-んァ-ヶ]
このように入力すると「漢字・ひらがな・カタカナ」いずれかが含まれているかをチェックできます。
エラーメッセージを変更する方法は?
この部分の””の内側の文章を変更するだけで大丈夫です。
$result->invalidate($tag, “フリガナを入力してください。”);
コンタクトフォーム7の日本語入力チェックで注意することは?
コンタクトフォーム7の入力チェックはfunctions.php
に入力している無いようなので全てのコンタクトフォームに反映されます。そのため、他のところでも同じタグ名を使っていると、日本語チェックが反映されます。
それがいいこともあれば、悪いこともあるので使い所とタグ名には要注意です。
日本語入力判定は「日本語が含まれているか」を判定しているので、スパムが日本語を使ってきた時は無力です。
その時は他の対策を考えましょう。
まとめ
- コンタクトフォーム7に日本語チェックを導入する時はfunctions.phpを編集する
- `hurigana`を自分が使っているタグに置き換えることで他のタグにも日本語チェックを追加できる。
- `[ぁ-んァ-ヶ]`を変更すると、漢字の判定も行える。
- エラーメッセージの変更は $result->invalidate($tag, “ここを編集”);
- テキストエリアに日本語チェックを追加したい時は`wpcf7_validate_text` を `wpcf7_validate_textarea`に変更する。
これで海外からのスパムを弾けるはずです。(日本語を使ってこない限り)
是非あなたのサイトにも導入してスパムを寄せ付けないようにしましょう!
コメントを残す