【wordpress】MW WP form用の生年月日入力用selectセット

2018年4月20日

MWWPformプラグインで作るフォームに、生年月日入力欄を年・月・日のセレクトボックスで作るときのソースコード

[mwform_select name="birth-year" children=":---,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997" post_raw="true"]年 [mwform_select name="birth-month" children=":---,1,2,3,4,5,6,7,8,9,10,11,12" post_raw="true"]月 [mwform_select name="birth-day" children=":---,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,28,29,30,31" post_raw="true"]日

こんな感じになります。

参考

MW WP Form のセレクトボックスで「選択してください」を空欄とみなす最も簡単な方法(JavaScript 非使用)

 

ちなみに、生年月日を必須にしたいとき、項目ごとにバリデートをかけると、年に[未入力です。]、月に[未入力です。]、日に[未入力です。]が出て著しく見た目が崩れます。

そこで、まずフォームのコードを……※管理画面上でつけるバリデーションは不要です。

[mwform_select name="birth-year" children=":---,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997" post_raw="true" show_error="false"]年 [mwform_select name="birth-month" children=":---,1,2,3,4,5,6,7,8,9,10,11,12" post_raw="true" show_error="false"]月 [mwform_select name="birth-date" children=":---,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,28,29,30,31" post_raw="true" show_error="false"]日
[mwform_error keys="birth-year,birth-month,birth-date"]

 

そしてfunctions.php

/* mw wp form validate いずれか必須状態 */
function entry_validation_rule( $Validation, $data) {
  $validation_message2 = '未入力項目があります。';

  if ( empty( $data['birth-year'] ) ) {
    $Validation->set_rule( 'birth-year', 'noempty', array( 'message' => $validation_message2 ) );
  } elseif ( empty( $data['birth-month'] ) ) {
    $Validation->set_rule( 'birth-month', 'noempty', array( 'message' => $validation_message2 ) );
  } elseif ( empty( $data['birth-date'] ) ) {
    $Validation->set_rule( 'birth-date', 'noempty', array( 'message' => $validation_message2 ) );
  }

  return $Validation;
}
add_filter( 'mwform_validation_mw-wp-form-203', 'entry_validation_rule', 10, 2 );

最後の行、mwform_validation_mw-wp-form-203
の203は、ショートコードの[mwform_formkey key="203“]この部分

 

【追記】

ちょっと便利そうなエクセル

プルダウン日付作成.xlsx