Go to top Go to bottom

投稿の日付を表示するにはthe_date()を、文字列として取得するにはget_the_date()を使用します。ただし、the_date()連続して同じ日を出力することができません

記事の日付を出力する

記事の日付は、次のようにして簡単に出力することができます。WordPressループの中で使用してください。

<?php the_date(); ?>

実行すると、たとえば「2017年10月10日」のような結果が得られます。ただし、Codexに記載がある通り、the_date()関数は同じ日付を2回以上連続して出力しません。記事一覧で同日の投稿があった場合、後に出てきた投稿の日付は省略されることになります。

同じ日付でも表示したい場合は、次のどちらかの方法を用います。

<?php echo get_the_date(); ?>
<?php the_time( get_option( 'date_format' ) ); ?>

前者のget_the_date()は日付を文字列として取得する関数で、こちらは1回の制限がありませんので、同日でもechoを用いて投稿日を出力することができます。

後者のthe_time()は投稿の時間を表示する関数ですが、日付と時刻のフォーマットを指定することで日付を出力することができます。同日でも問題なく出力されます。

日付のフォーマットについては下を参照してください。

日付の形式を変更する

管理画面から日付のフォーマットを変更する

たとえば、日付を「2017/02/17」や「January 4, 2019」などという別の形式で表示するには、管理画面から設定を変更します。

まず、管理画面で[設定]を選択し、一般設定を開きます。

画面を下にスクロールすると、[日付のフォーマット]を設定する部分がありますので、表示させたい形式を選択します。もし表示させたい形式が一覧にない場合は、カスタムで日付のフォーマットを直接指定することもできます

以下によく使うフォーマットをまとめました。

d先頭にゼロがついた日。01 – 31
j先頭にゼロがつかない日。1 – 31
m先頭にゼロがついた月。01 – 12
n先頭にゼロがつかない月。1 – 12
Fフルスペルの月。日本語環境下では1月 – 12月、英語環境下ではJanuary – Decemberと表示される
Y西暦。たとえば2018など

たとえば、「Y/m/d」とすると「2019/02/07」、「Y年n月j日」とすると「2019年2月7日」のような日付を出力することができます。フォーマットはこれ以外にもたくさんありますので、詳しくはCodexの日付と時刻の書式を参照してください。

なお、上で少し出てきましたが、管理画面で設定した日付のフォーマットを取得するには次のようにします。

<?php
  $format = get_option( 'date_format' );
?>
管理画面の言語を変更する場合の注意

管理画面の言語を変更すると、日付や時刻のフォーマットが変更されることがあります。言語を変更する際は注意してください。

関数で直接フォーマットを指定する

the_date()get_the_date()あるいはthe_time()は引数にフォーマットを指定することができます。

テンプレートタグ

get_the_date( $format, $post_id )

投稿の日付を取得する。$post_idが指定されない場合は、現在の投稿の日付を返す。

$format日付のフォーマットを文字列で指定する。初期値は管理画面で設定したフォーマット
$post_id日付を取得したい投稿のID。何も指定しないと現在の投稿になる

これを利用すると、日付を任意の形式で取得・表示することができます。

<?php echo get_the_date( 'F' ); ?>
<?php echo get_the_date( 'F d, Y' ); ?>

前者は英語環境下において「January」など、英語表記の月のみを出力、後者は「January 01, 2019」などを出力します。なお、1度のみの表示でよいのなら、the_date( $format )を使用しても構いません。

日本語環境下でも英語の月名を表示する

日本語環境下でもJanuaryなどのような英語の月名を取得・表示したい場合は、get_post_time()という関数を使用します。この関数は第4引数に翻訳するかどうかの値を取り、デフォルトの状態ではfalse、すなわち翻訳しないようになっています。

<?php echo get_post_time( 'F' ); ?>

こうすると、投稿した月を英語で出力することができます。