大阪で(ry

明治時代の大阪の活気を再び!

大阪の皮を被った、技術メモと開発日記。

IT総合

ContactForm7用バリデートプラグイン

WordPressにお問い合わせ画面を実装出来るプラグインとして
Contact Form 7(以下CF7)というのがあるんだけど
海外製というのもあるのか?ちょっと機能不足なところが(いや、これの自体の機能は凄いんだけどかゆい所に手が届かない)

その中の一つとして検証ルール

  • メールアドレスはある
  • 電話番号もある
  • 数値というのもある

だけど、例えば郵便番号(あちらで言うZipとか)がないとか
ふりがなで書いて欲しいけど、英語圏じゃ関係ないよねとか

というわけで、バリデート機能を補足しようと思い
こちらのフォーラムにあるトピに正規表現というヒントを貰った
http://ja.forums.wordpress.org/topic/3321

上記の場合だとCF7自体にパッチを加える状態になってしまうので、CF7がアップデートされると意味が無くなるし
元々、トピが古くて現在のバージョンのCF7に対応出来ない
というわけで、それを補うよう作ってみた

正規表現そのものはプラグインとして作るとなかなか難しく
使えない表現([とか]とか[0-9]ってやるのが出来ない)をアスキーコードに置き換えてみる
「#アスキーコード:」で表現するようにしてみる
また正規表現がわからない人向けに、ある程度の簡易化するための引数は用意した

ダウンロードはこちらから(うんSkyOneDriveなんだ)
http://1drv.ms/1f9UwIv

以下、使い方説明

先ずCF7を入れます(CF7のプラグインなので)
続いて、本プラグインを入れます
CF7の設定に飛び、タグの作成をすると「検証フォーム」というのが出ると思う
これを選択すると後はCF7を使っていたらいつも通り

[validate validate-数字]

これをコピペして
validate-数字の後にregex:に続いて正規表現なりなんなりを入れます
例として郵便番号を入れましょう

[validate validate-数字 regex:#91:0-9#93:#123:3#125:#92:-#91:0-9#93:#123:4#125:]

これを正規表現の部分を置き換えると
[0-9]{3}\-[0-9]{4}
となります
#数字:の部分は、先に書いたとおり数字のところがアスキーコードとなります
アスキーコードとして使う部分はこちら

[]^\{};

この他、正規表現がわからない人向けに一式の引数も用意
hiragana = ひらがなのみ
katakana = カタカナのみ
num = 数字のみ
alpha_little = アルファベットの小文字のみ
alpha_large = アルファベットの大文字のみ
これらは組み合わせる事も出来ます
英数字(小文字)を許可したい場合は

[validate validate-数字 num alpha_little]

とこんな感じ
その他
postal = 郵便番号
phone = 電話番号(2桁発信、携帯対応)

その他、CF7に関してはメールアドレスの確認フォームもないんですけど
ここはパッチを作ってくれてる人もいます