teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/10/16 06:48

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -14,4 +14,38 @@
14
14
  function wpcf7_validate_kana2($result,$tag){
15
15
  (略)
16
16
  }
17
- ```
17
+ ```
18
+
19
+ ----
20
+
21
+ 二つの function の違いは、条件分岐だけの違いみたいなので、条件を ` || ` 演算子( = or ) でつなげば、まとめられるのでは?
22
+
23
+ ```
24
+ /**
25
+ * contact-form-7プラグインにて姓、名のフリガナが正しいかどうかを確認
26
+ *
27
+ */
28
+
29
+ add_filter('wpcf7_validate_text', 'wpcf7_validate_kana', 11, 2);
30
+ add_filter('wpcf7_validate_text*', 'wpcf7_validate_kana', 11, 2);
31
+ function wpcf7_validate_kana($result,$tag){
32
+
33
+ $tag = new WPCF7_Shortcode($tag);
34
+ $name = $tag->name;
35
+
36
+ $value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], "\n", " "))) : "";
37
+
38
+ // furiganaはフォーム側のnameです
39
+ if ( $name === "your-m-kana" || $name === "your-n-kana" ) { // $name が、'your-m-kana' か 'your-n-kana' の場合に実行
40
+
41
+ // カタカナの場合
42
+ if(!preg_match("/^[ァ-ヾ]+$/u", $value)) {
43
+
44
+ $result->invalidate($tag, "全角カタカナで入力してください。");
45
+ }
46
+ }
47
+ return $result;
48
+ }
49
+ ```
50
+
51
+ [PHP マニュアル 言語リファレンス 演算子 論理演算子](http://php.net/manual/ja/language.operators.logical.php) 参照