【wordpress】Advanced Custom Fieldsのデイトピッカーで曜日を追加し、フォーマットしてから出力する

Advanced Custom Fieldsのデイトピッカーで入力した値を、曜日を追加してかつ日付形式を変更してから出力する必要があったので対応メモ。

functions.php

//日付フォーマット
function dateformat($field_name, $format_status = 'default')
{
  $week = array('日', '月', '火', '水', '木', '金', '土');

  if ($format_status === 'jp') {
    $format = 'Y年n月j日';
  } else {
    $format = 'Y/n/j';
  }

  if (date_create($field_name)) {
    $date = date_create($field_name);
  } else { //カスタムフィールドだったらfalseが帰ってくる
    $date = date_create(get_field($field_name));
  }

  echo date_format($date, $format) . '(' . $week[(int) date_format($date, 'w')] . ')';
}

使いたいところで

<?php dateformat('date', 'jp'); ?>
→ex)2020年2月29日(土)が出力

<?php dateformat('date'); ?>
→ex)2020/2/29(土)が出力

‘date’がカスタムフィールドだった時と通常の日付形式だった時の2パターン必要だったので、一度$field_nameをdate_createしています。

参考サイト
Advanced Custom Fieldsのdatepickerで、曜日を日本語で出力する – idew.DESIGN