WordPress

【Contact Form 7】ひらがな・カタカナのバリデーションを追加する方法【スパム対策】

ken-admin-suto

Contact Form 7を設定しているけど、ひらがな(平仮名)やカタカナのバリデーションって追加できるのかな?

今回は、WordPressのプラグインである「Contact Form 7」に関する記事になります。

  • 「ひらがな」のみのバリデーションを追加したい
  • 「カタカナ」のみのバリデーション追加したい
  • 「ひらがな or カタカナ」のバリデーションを追加したい
  • 迷惑メールを防止したい

などを考えている方は是非、今回の記事を参考にしてみてください。

「ひらがな」のみのバリデーション

functions.phpに追加するコード

funtions.phpに下記のコードを追加してください。

1<?php
2function custom_wpcf7_validate_kana($result,$tag)
3{
4    $tag   = new WPCF7_Shortcode($tag);
5    $name  = $tag->name;
6    $value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], "\n", " "))) : "";
7
8    //「ひらがな」のみ
9    if ($name === "hiragana") {
10        if(!preg_match("/^[ぁ-ん]+$/u", $value)) {
11            $result->invalidate( $tag,"「ひらがな」で入力してください。");
12        }
13    }
14
15    return $result;
16}
17add_filter('wpcf7_validate_text', 'custom_wpcf7_validate_kana', 10, 2);
18add_filter('wpcf7_validate_text*', 'custom_wpcf7_validate_kana', 10, 2);
19?>

「コンタクトフォームの編集」のコード

「Contact Form 7」の「コンタクトフォームの編集」部分では、上記9行目の「hiragana」と名前を合わせましょう。

1<label> ふりがな
2    [text* hiragana autocomplete:name] </label>

「カタカナ」のみのバリデーション

functions.phpに追加するコード

funtions.phpに下記のコードを追加してください。

1<?php
2function custom_wpcf7_validate_kana($result,$tag)
3{
4    $tag   = new WPCF7_Shortcode($tag);
5    $name  = $tag->name;
6    $value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], "\n", " "))) : "";
7
8    //カタカナのみ
9    if ($name === "katakana") {
10        if(!preg_match("/^[ア-ヶ]+$/u", $value)) {
11            $result->invalidate( $tag,"「カタカナ」で入力してください。");
12        }
13    }
14
15    return $result;
16}
17add_filter('wpcf7_validate_text', 'custom_wpcf7_validate_kana', 10, 2);
18add_filter('wpcf7_validate_text*', 'custom_wpcf7_validate_kana', 10, 2);
19?>

「コンタクトフォームの編集」のコード

「Contact Form 7」の「コンタクトフォームの編集」部分では、上記9行目の「katakana」と名前を合わせましょう。

1<label> フリガナ
2    [text* katakana autocomplete:name] </label>

「ひらがな or カタカナ」 のバリデーション

functions.phpに追加するコード

funtions.phpに下記のコードを追加してください。

1<?php
2function custom_wpcf7_validate_kana($result,$tag)
3{
4    $tag   = new WPCF7_Shortcode($tag);
5    $name  = $tag->name;
6    $value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], "\n", " "))) : "";
7
8    // ひらがな or カタカナ
9    if ($name === "hiragana-katakana") {
10        if(!preg_match("/^[ア-ヶーぁ-ん]+$/u", $value)) {
11            $result->invalidate( $tag,"「ひらがな or カタカナ」で入力してください。");
12        }
13    }
14
15    return $result;
16}
17add_filter('wpcf7_validate_text', 'custom_wpcf7_validate_kana', 10, 2);
18add_filter('wpcf7_validate_text*', 'custom_wpcf7_validate_kana', 10, 2);
19?>

「コンタクトフォームの編集」のコード

「Contact Form 7」の「コンタクトフォームの編集」部分では、上記9行目の「hiragana-katakana」と名前を合わせましょう。

1<label> ふりがな or フリガナ 
2    [text* hiragana-katakana autocomplete:name] </label>

どのように表示される?

実機の画面で見てみると、上記(例)のように表示されます。

それぞれの項目に正しく入力すればエラーが発生することはありません。

以上になります。

SNSも更新中!
気軽にフォローして下さい♪
ABOUT ME
けん
けん
ブロガー / WEB制作フリーランス
経歴:新卒でIT企業に就職 → 大学・企業・プラグラミングスクールで勉強した知識を活かしてフリーランスに → 最高月収50万円程
得意分野:WordPress/HTML/CSS/JS 等

Web制作を中心にフリーランスとして活動中。
Web制作に関する記事を投稿致します。
記事URLをコピーしました