ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

説明

wpforms_datetime_date_dropdownsフィルターは、日付フィールドのドロップダウン形式内のラベルとオプションをフィルタリングします。

パラメーター

$dates
(配列) (必須) 日付ドロップダウンで使用されるラベルと数値範囲。
$form_id
(int) (必須) フォームID。
$field
(配列) (必須) 日付フィールドの値とプロパティ。

ソース

wpforms/pro/includes/fields/class-date-time.php

詳細情報

wpforms_datetime_date_dropdownsフィルターは、日付ドロップダウンオプションを含む配列に適用されます。これにより、月、日、年のドロップダウンのラベル、および各ドロップダウンに含まれるオプションをカスタマイズできます。

注意: 日、月、年の範囲には整数値のみを指定できます。

日付の制限

以下の例では、関数は月を1月から6月、日を1日から15日、年を1980年から開始するように制限します。

この関数は、ラベルをデフォルトのMM/DD/YYYYからM/D/Yに変更しています。

コードを実行したい特定のフォームIDに合わせて、フォームIDを25から変更することを忘れないでください。このチェックを削除すると、すべてのフォームで実行されます。

/**
 * Filters labels and options within the date field’s dropdown format.

 * @link   https://wpforms.com/developers/wpforms_datetime_date_dropdowns/
 * 
 * @param  array  $dates    Months, Days, and Years arguments.
 * @param  int    $form_id  Form ID.
 * @param  array  $field    Date field values and properties.
 *
 * @return array
 */

function wpf_dev_datetime_date_dropdowns( $dates, $form_id, $field ) {

        // Only run on my form with ID = 25
        if ( absint( $form_id ) !== 25 ) {
            return $ranges;
        }  

	$ranges = array(
		'months'       => range( 1, 6 ),
		'days'         => range( 1, 15 ),
		'years'        => range( date( 'Y' ), 1980 ),
		'months_label' => esc_html__( 'M', 'wpforms' ),
		'days_label'   => esc_html__( 'D', 'wpforms' ),
		'years_label'  => esc_html__( 'Y', 'wpforms' ),
	);
	
	return $ranges;
	
}
add_filter( 'wpforms_datetime_date_dropdowns', 'wpf_dev_datetime_date_dropdowns', 10, 3 );

スニペットのフォームIDを、ご自身のフォームIDに合わせて更新してください。フォームID番号の見つけ方がわからない場合は、こちらのチュートリアルをご覧ください。

年の拡張

年を2023年以降も表示したい場合は、このスニペットを使用し、2050の最大年を希望の値に変更してください。

/**
 * Filters labels and options within the date field’s dropdown format.
 
 * @link   https://wpforms.com/developers/wpforms_datetime_date_dropdowns/
 * 
 * @param  array  $dates    Months, Days, and Years arguments.
 * @param  int    $form_id  Form ID.
 * @param  array  $field    Date field values and properties.
 *
 * @return array
 */
 
function wpf_dev_datetime_date_dropdowns( $dates, $form_id, $field ) {
 
    $ranges = array(
        'months'       => range( 1, 12 ),
        'days'         => range( 1, 31 ),
        'years'        => range( date( 'Y' ), 2050 ),
        'months_label' => esc_html__( 'MM', 'wpforms' ),
        'days_label'   => esc_html__( 'DD', 'wpforms' ),
        'years_label'  => esc_html__( 'YYYY', 'wpforms' ),
    );
     
    return $ranges;
     
}
add_filter( 'wpforms_datetime_date_dropdowns', 'wpf_dev_datetime_date_dropdowns', 10, 3 );

記事参照: 日付時刻フィールドの日付オプションをカスタマイズする