1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WordPressのAdvancedCustomFieldsにデフォルト値を設定する方法

Last updated at Posted at 2022-03-09

実装

左サイドバー > 外観 > テーマエディター をクリック後
右サイドバー > テーマファイル > テーマのための関数 (functions.php) をクリック

ファイルの末尾に以下の内容を追記して保存する

/**
 * カスタムフィールドのデフォルト値を設定する
 */
function acf_my_custom_field_name_callback($field)
{
    $field['default_value'] = "★デフォルト値をここに入力★"
    return $field;
}

my_custom_field_nameの部分にはご自身で作ったカスタムフィールド名を入れてください。

close_dateならば、
add_filter('acf/load_field/name=close_date', acf_close_date_callback);
みたいな感じで。

関数名も同じく変更してください。
function acf_close_date_callback($field)
みたいな感じで。

サンプル

今回の例では、デイトピッカーのデフォルト値に、
現在日付の一カ月後の値を初期設定することにします。

カスタムフィールド名は close_date にします。

左サイドバー > 外観 > テーマエディター をクリック後
右サイドバー > テーマファイル > テーマのための関数 (functions.php) をクリック

ファイルの末尾に以下の内容を追記して保存する

/**
 * 現在日付の一カ月後を文字列で取得
 */
function show_next_month_from_now()
{
    $dt = new DateTime();
    $dt->modify("+1 month");
    $date = $dt->format("Y-m-d");
    return $date;
}

/**
 * カスタムフィールドのデフォルト値を設定する
 */
function acf_close_date_callback($field)
{
    $field['default_value'] = show_next_month_from_now();
    return $field;
}

// デフォルト値設定を適用する
add_filter('acf/load_field/name=close_date', acf_close_date_callback);

2022.03.13追記

試してないですが、こういう書き方もできるなって思いました。

/**
 * ACFカスタムフィールドにデフォルト値を設定する
 */
function addAcfDefaultValue(name, value)
{
  $fieldName = 'acf/load_field/name=' . $name;
  add_filter($fieldName, function($field){
    $field['default_value'] = value;
    return $field;
  });
}

addAcfDefaultValue('my_custom_field_name', "★ここにデフォルト値を入力★");
addAcfDefaultValue('close_date', show_next_month_from_now());

参考URL

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?