MW WP Form(v3)のエラーメッセージカスタマイズ(バリデーションルール)一覧

いつも大変お世話になっているMW WP Formには、エラーメッセージを柔軟にカスタマイズできる機能もあります。本当にありがたいです。

カスタマイズはfunctions.phpで、バリデーションルールを使用して設定します。バリテーションルールは公式サイトに記載があるのですが、一覧が(おそらく)ないので、自分用にチートシートを作成してみました。

かなり前に書きかけのまま放置していたのですが、9/1にv4がリリースされるということで、未完成のまま供養のために放出してみました(本当は表の表示などももう少し見やすくできるthemeを完成させた後に公開予定でしたので、見づらくてすみません)。v4に対応できるかはまだわかりませんのでご了承下さい。

MW WP Form バリデーションルール対応表

バリデーションルール設定
  日本語名 対応する名前 引数 備考
1 必須項目 noEmpty   チェックボックスやラジオボタンには反応しない。0はOK。
2 必須項目
(チェックボックス)
required   ラジオボタンの選択チェックもこれ
3 半角数字 numeric    
4 半角英字 alpha    
5 半角英数字 alphaNumeric    
6 カタカナ katakana   カタカナ。いつからか「ー(長音)」を許可してくれるようになってありがたいです。
7 ひらがな hiragana   ひらがな。「ー(長音)」は拒否。
8 ひらがな または カタカナ kana    
9 郵便番号 zip   日本の郵便番号形式か否か
10 電話番号 tel   電話番号の形式はハイフンと+なしなら国番号付きもいけるっぽい
11 メールアドレス mail    
12 日付 date   OK:2018/08/01とか08/01/2018とか1st August, 2018とか2018年8月1日とか8/1とか。エラー:1月1日とか2020/20/20とか。
13 日付(年月) month   OK:2018年8月とか8/1とか。エラー:2018/08。バリデーションルールには説明ページはないが、それっぽい関数があったので。
14 URL url   httpかhttpsで始める
15 一致する項目 eq target(文字列:他のname) メールアドレスなどの誤入力確認用。メアドを2回入力してもらう時に使うやつ。
16 文字数の範囲 between min(整数値:最小文字数), max(整数値:最大文字数)  
17 最小文字数 minLength min(整数値:最小文字数)  
18 拡張子制限 fileType types(文字列:拡張子をカンマ区切りで) jpg,pngなど。.はいらない。配列ではない。
19 サイズ制限 fileSize bytes(整数値:最大ファイル数をバイト単位で)  
20 最大画像サイズ maximagesize width(整数値:横幅をpx単位), height(整数値:縦幅をpx単位)  
21 最小画像サイズ minimagesize width(整数値:横幅をpx単位), height(整数値:縦幅をpx単位)  
  なし in options(1次元配列) optionsで渡された配列に一致する項目がない場合にエラーを返す模様。セレクト、ラジオ、チェックのチェック強化用?
  なし noFalse   値がセットされていても0の場合は許さない
  なし Akismet   [mwform_akismet_error]のエラーメッセージをカスタマイズできそうだが使ったことがないのでわからない。「バリテーション項目」にもバリデーションルールにも記載はない。

バリデーションルールでエラーメッセージをカスタマイズするには

functions.phpにエラーメッセージをカスタマイズする関数を記述し、add_filterで設定します。

functions.phpの基本書式

function 自分でつけた関数名 ( $validation ) {
    $validation->set_rule(
       'バリテーションを適用する項目名',
       'バリデーションルール名',
       array(
        'message' => 'エラーメッセージをここに記載',
        '他に指定する引数があればその名前' => 値,
    ) );
    return $validation;
}
add_filter( 'mwform_validation_mw-wp-form-フォーム識別子のkey', '自分でつけた関数名' );

具体的な記載例

投稿に記載したフォーム識別子
[mwform_formkey key="333"]
フォーム内に記載したショートコード
[mwform_radio name="ラジオボタン選択肢" children="0,1,2,3"]
[mwform_password name="パスワード入力欄" size="60"]
functions.php
function my_validations ( $validation ) {
    $validation->set_rule(
       'ラジオボタン選択肢',
       'required',
       array(
        'message' => '必ずどれかを選択しないとダメです',
    ) );
    $validation->set_rule(
       'ラジオボタン選択肢',
       'noFalse',
       array(
        'message' => '0は選択していないことと同じです',//かなりうざいので選択されたくない選択肢は選択肢に用意するのはやめましょう
    ) );
    
    $validation->set_rule(
       'パスワード入力欄',
       'noEmpty',
       array(
        'message' => 'パスワードは必ず設定してください',
    ) );
    $validation->set_rule(
       'パスワード入力欄',
       'minLength',
       array(
        'min' => 32,
        'message' => 'パスワードは32文字以上必要です',
    ) );
    return $validation;
}
add_filter( 'mwform_validation_mw-wp-form-333', 'my_validations' );