Custom Field Template の FILE の バリデーション
Custom Field Templateのバリデーション
非常にニッチな話だけど、Custom Field Templateの FILE のバリデーションのTips。
Custom Field Templateは、グローバル設定の「jQuery バリデーションを使用する」にチェックを入れるとバリデーションを利用することができる。
この状態で、以下のようにclassに jquery-validationで利用できるやつを指定するとバリデーションしてくれる。
この例だと required なので入力が必須ということになる。
[image]
type = file
label=写真
class= required
FILEのバリデーション
問題はここから。
この状態で一度ファイルをアップロードして保存する。
その後、編集をもう一度したとき、requiredが効いてしまい、何かしらのファイルをアップロードしないとバリデーションが通らないのだ。
これは困る。ファイル以外の項目を編集したいのにできないからだ。
仕方ないので、jquery-validateに独自のvalidationを定義することにする。
jquery-validateに独自バリデーションの追加
準備として、functions.phpで js ファイルを読み込むようにして、そちらのjsファイルに記述する。
1 | add_action('admin_head', function(){ |
以下、jsファイル内の記述。今回、独自の定義として requiredFile を定義する。
1 | (function($){ |
これで、あとは作った定義のclassをくっつける。
[image]
type = file
label=写真
class= requiredFile