【MW WP Form】年月日のセレクト項目を動的に出力する方法
2022年6月29日
WordPress
この記事のURLとタイトルをコピーする
WordPress(ワードプレス)でフォームの設定が出来るプラグイン「MW WP Form」。
セレクトボックスの日付を動的に出力する備忘録です。
今回は署名の日付欄としてセレクトボックスを実装したいので、西暦は現在の年度のみ出力するようにしています。
選択肢は空にし、nameは任意の文字列にします。
「年」は現在の西暦、「月」は1~12、「日」は1~31です。
1行目の
mwform_choices_mw-wp-form-xxxはプラグインのフックを使用しています。
「×××」はフォーム識別子のkeyを指定します。
その場合、先ほどのfunction.php 3~8行目を下記に書きかえます。
これで1960~現在の西暦までの選択肢を持たせることができると思います。
選択肢の始まりを変更する場合、「1960」を任意の西暦にします。
セレクトボックスの日付を動的に出力する備忘録です。
今回は署名の日付欄としてセレクトボックスを実装したいので、西暦は現在の年度のみ出力するようにしています。
管理画面の設定をする
「MW WP Form」の編集画面から、年・月・日のセレクトボックスを作成します。選択肢は空にし、nameは任意の文字列にします。
1 2 3 4 5 6 7 8 |
<dl> <dt>日付</dt> <dd> <div>[mwform_select name="signature_year"]年</div> <div>[mwform_select name="signature_month"]月</div> <div>[mwform_select name="signature_day"]日</div> </dd> </dl> |
function.phpを編集する
セレクトボックスの選択肢をfunction.phpで設定します。「年」は現在の西暦、「月」は1~12、「日」は1~31です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
add_filter( 'mwform_choices_mw-wp-form-×××', 'mwform_add_signature_options', 10, 2 ); function mwform_add_signature_options( $children, $atts ) { // 年設定 if ( $atts['name'] === 'signature_year' ) { $children[''] = ''; $i = date( 'Y' ); $children[$i] = $i; } // 月設定 if ( $atts['name'] === 'signature_month' ) { $children[''] = ''; for ( $i = 1; $i <= 12; $i++ ) { $children[$i] = $i; } } // 日設定 if ( $atts['name'] === 'signature_day' ) { $children[''] = ''; for ( $i = 1; $i <= 31; $i++ ) { $children[$i] = $i; } } return $children; } |
「×××」はフォーム識別子のkeyを指定します。
「年」の選択肢を任意の西暦~現在の西暦にする
西暦をセレクトボックスで設定する場合、生年月日など選択肢を持たせることが多いと思います。その場合、先ほどのfunction.php 3~8行目を下記に書きかえます。
1 2 3 4 5 6 |
// 年設定 if ( $atts['name'] === 'signature_year' ) { for ( $i = 1960; $i <= date( 'Y' ); $i++ ) { $children[$i] = $i; } } |
選択肢の始まりを変更する場合、「1960」を任意の西暦にします。
この記事のURLとタイトルをコピーする