質問: "your-n-kana") { の箇所に複数クラスを指定することはできるのか ### 補足情報 1回しか使わない場合は指定した1箇所に対して正常に動きます。
回答: 同じ名前の fanction は、複数登録できないので、1つ目と2つ目で function の名前を変えてください。 or 共通化して関数内で条件判断で分岐するようにしてください。 とりあえず、名前を変える例 ``` add_filter('wpcf7_validate_text', 'wpcf7_validate_kana1', 11, 2); add_filter('wpcf7_validate_text*', 'wpcf7_validate_kana1', 11, 2); function wpcf7_validate_kana1($result,$tag){ (略) } add_filter('wpcf7_validate_text', 'wpcf7_validate_kana2', 11, 2); add_filter('wpcf7_validate_text*', 'wpcf7_validate_kana2', 11, 2); function wpcf7_validate_kana2($result,$tag){ (略) } ``` 二つの function の違いは、条件分岐だけの違いみたいなので、条件を `||` 演算子( = or ) でつなげば、まとめられるのでは? ``` /** * contact-form-7プラグインにて姓、名のフリガナが正しいかどうかを確認 * */ add_filter('wpcf7_validate_text', 'wpcf7_validate_kana', 11, 2); add_filter('wpcf7_validate_text*', 'wpcf7_validate_kana', 11, 2); function wpcf7_validate_kana($result,$tag){ $tag = new WPCF7_Shortcode($tag); $name = $tag->name; $value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], "\n", " "))) : ""; // furiganaはフォーム側のnameです if ( $name === "your-m-kana" || $name === "your-n-kana" ) { // $name が、'your-m-kana' か 'your-n-kana' の場合に実行 // カタカナの場合 if(!preg_match("/^[ァ-ヾ]+$/u", $value)) { $result->invalidate($tag, "全角カタカナで入力してください。"); } } return $result; } ``` PHP マニュアル 言語リファレンス 演算子 論理演算子 参照