Contact Form7でカタカナ・ひらがなのバリデーションを追加する方法

WordPress / PHP
WordPress学習におすすめの書籍

WordPressサイトでフォームを作成する際、Contact Form 7は便利なプラグインの1つです。しかし、デフォルトではフリガナのバリデーションが提供されていません。そのため、カスタムバリデーションを追加することで、ユーザーが正しいフォーマットで入力するように制限することができます。

この記事では、Contact Form 7でカタカナ・ひらがなのバリデーションを追加する方法をご紹介します。

カタカナ・ひらがなのバリデーションを追加するコード

以下のコードを使用することで、Contact Form 7のフォームフィールドに対してカタカナまたはひらがなのバリデーションを追加できます。

PHP
//Contact Form 7でカタカナ・ひらがなのバリデーション追加
function custom_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", " "))) : "";

    //全角カタカナ又はひらがなの入力チェック
    if ($name === "your-kana") {
        if (!preg_match("/^[ア-ヶーぁ-ん]+$/u", $value)) {
            $result->invalidate($tag, "全角カタカナ又はひらがなで入力してください。");
        }
    }

    //全角カタカナのみ
    // if ($name === "your-kana") {
    //     if (!preg_match("/^[ア-ヶー]+$/u", $value)) {
    //         $result->invalidate($tag, "全角カタカナで入力してください。");
    //     }
    // }

    //平仮名のみ
    // if ($name === "your-kana") {
    //     if (!preg_match("/^[ぁ-ん]+$/u", $value)) {
    //         $result->invalidate($tag, "ひらがなで入力してください。");
    //     }
    // }

    return $result;
}
add_filter('wpcf7_validate_text', 'custom_wpcf7_validate_kana', 11, 2);
add_filter('wpcf7_validate_text*', 'custom_wpcf7_validate_kana', 11, 2);

コードの説明

  1. custom_wpcf7_validate_kana関数の定義:
    • $result$tagの引数を受け取ります。
    • $tagオブジェクトをWPCF7_Shortcodeクラスとして初期化し、フォームフィールドのname属性を取得します。
    • フォームフィールドの値を取得し、必要に応じてトリムおよびスラッシュ解除を行います。
  2. バリデーションの条件設定:
    • your-kanaというname属性を持つフィールドに対して、全角カタカナまたはひらがなのみを許可する正規表現を使用してバリデーションを行います。
    • 条件を満たさない場合、エラーメッセージを設定します。
  3. フィルターフックの追加:
    • wpcf7_validate_textおよびwpcf7_validate_text*フックを使用して、上記のバリデーション関数を適用します。

まとめ

このカスタムバリデーションを追加することで、Contact Form 7のフォームに入力された値が全角カタカナまたはひらがなのみであることを保証できます。用途に応じて、コメントアウトされている部分を有効にして、全角カタカナのみやひらがなのみにバリデーションを変更することも可能です。

制作のご相談・ご依頼はこちらから!
To Top