WordPressは非常にカスタマイズ性が高いCMSですが、日付のフォーマットを変更するのは一見難しい場合があります。
例えば、日本語設定のサイトで日付を英語の略称(例:Jan, Feb, Mar)で表示したい場合です。
// 投稿日を出力
echo esc_attr( $date_object->format( 'M d, Y' ) );
この出力結果は、次のようになってしまいます。。。
8月 24, 2023
この原因は、「WordPressのデフォルトの設定が日本語になっている」からです。
英語だけ使うサイトだったら、このデフォルト設定を英語にすればいいですが、
日本語サイトや多言語サイトだったらそうはいきません。。。
この記事では、WordPressの投稿日を「月の英語の略称」に変更する方法をPHPコードを使用して紹介します。
目次
月の英語の略称で投稿日を表示する方法
次のようにPHPを書きます。(細かいコードの解説は後ほど)
// 投稿日を取得・出力.
$date_string = get_the_date( 'Y-m-d' ); // YYYY-MM-DD形式で投稿日を取得.
$date_object = new DateTime( $date_string ); // PHPのDateTimeクラスのオブジェクトに変換.
$data_format = $date_object->format( 'M d, Y' ); // フォーマットを指定して出力.
echo esc_attr( $data_format );
これで思い通り、日付を英語の略称で出力することができました!
Aug 24, 2023
コードの解説
get_the_date('Y-m-d')
: 投稿日をYYYY-MM-DD形式で取得します。new DateTime($date_string)
: PHPのDateTimeクラスを使用して、文字列形式の日付をオブジェクトに変換します。$date_object->format('M d, Y')
: 変換したDateTimeオブジェクトのformatメソッドを使用して、日付を「月の英語の略称」で出力します。
この方法を使用すれば、WordPressサイトの言語設定に関係なく、投稿の公開日を英語の月の略称で表示することができます。