【Contact Form 7】テキストエリアにひらがな・カタカナのバリデーションを追加する方法【スパム対策】
ken-admin-suto
けんすと
Contact Form 7を設定しているけど、ひらがな(平仮名)やカタカナのバリデーションって追加できるのかな?
今回は、WordPressのプラグインである「Contact Form 7」に関する記事になります。
などを考えている方は是非、今回の記事を参考にしてみてください。
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>
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>
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>
実機の画面で見てみると、上記(例)のように表示されます。
それぞれの項目に正しく入力すればエラーが発生することはありません。
以上になります。