回答編集履歴

1

追記

2018/10/16 06:48

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -31,3 +31,71 @@
31
31
  }
32
32
 
33
33
  ```
34
+
35
+
36
+
37
+ ----
38
+
39
+
40
+
41
+ 二つの function の違いは、条件分岐だけの違いみたいなので、条件を ` || ` 演算子( = or ) でつなげば、まとめられるのでは?
42
+
43
+
44
+
45
+ ```
46
+
47
+ /**
48
+
49
+ * contact-form-7プラグインにて姓、名のフリガナが正しいかどうかを確認
50
+
51
+ *
52
+
53
+ */
54
+
55
+
56
+
57
+ add_filter('wpcf7_validate_text', 'wpcf7_validate_kana', 11, 2);
58
+
59
+ add_filter('wpcf7_validate_text*', 'wpcf7_validate_kana', 11, 2);
60
+
61
+ function wpcf7_validate_kana($result,$tag){
62
+
63
+
64
+
65
+ $tag = new WPCF7_Shortcode($tag);
66
+
67
+ $name = $tag->name;
68
+
69
+
70
+
71
+ $value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], "\n", " "))) : "";
72
+
73
+
74
+
75
+ // furiganaはフォーム側のnameです
76
+
77
+ if ( $name === "your-m-kana" || $name === "your-n-kana" ) { // $name が、'your-m-kana' か 'your-n-kana' の場合に実行
78
+
79
+
80
+
81
+ // カタカナの場合
82
+
83
+ if(!preg_match("/^[ァ-ヾ]+$/u", $value)) {
84
+
85
+
86
+
87
+ $result->invalidate($tag, "全角カタカナで入力してください。");
88
+
89
+ }
90
+
91
+ }
92
+
93
+ return $result;
94
+
95
+ }
96
+
97
+ ```
98
+
99
+
100
+
101
+ [PHP マニュアル 言語リファレンス 演算子 論理演算子](http://php.net/manual/ja/language.operators.logical.php) 参照