WordPressの記事内で日付を取得する「get_the_date()」を極めてみようと思います。
目次
get_the_date()について
「get_the_date()」は記事内で日付(公開日)を取得するためのテンプレートタグで、このテンプレートタグのみでは出力されないので、表示させたい場合は「echo」を併用する必要がある。なので変数などに渡せば投稿の日付を元にして処理を分けたりすることなどができる。
これとは別に投稿の時間を取得するための「get_the_time()」や日付を表示させるために「the_date()」、時間を表示させるための「the_time()」などのテンプレートタグがあるので、用途によって使い分けよう。また、このテンプレートタグでは公開日のみが取得されるので、最終更新日を取得したい場合は「get_the_modified_date()」を利用すること。
get_the_date()のパラメータについて
「get_the_date()」には2つのパラメータがある。
get_the_date( ① フォーマット, ② 投稿ID)
① フォーマット(文字列)
ここに規則に乗っ取った文字列を入力することによって取得する日付の形式を指定することができる。フォーマットの形式については「日付と時刻の書式」を参考。デフォルトは管理メニューの「設定」->「一般」何にある日付フォーマットの形式で取得される。
② 投稿ID
投稿IDを指定することで特定の投稿記事に設定された日付を取得することができる。デフォルトは現在の投稿に設定された日付が取得される。
get_the_date()の使用可能な場所
get_the_date()は投稿のループ内で使用可能となっているので、通常の投稿ループ内やアーカイブページで表示させる記事一覧内など使用でき、その他に月別のページでも使用することができる。
get_the_date()の使い方
「get_the_date()」は日付を表示させるためにテンプレートタグではなくて日付を取得するためのテンプレートだということを理解しておく必要がある。なので表示させたい場合には「echo」を併用する必要があるので注意すること。また、フォーマットのパラメータの仕様についても十分に理解しておく必要がある。
逆に日付を取得するということを理解できれば、日付を表示させるためだけでなく、記事の日付を条件にして特別な処理をすることもできることも頭の中に入れておけば、何かの役に立つだろう。
get_the_date()で日付を取得して表示させてみる
まずは単純に日付を表示させてみよう。下記のコードを実行してみる。
<?php echo get_the_date(); ?>
2018年9月25日
上記のようにパラメータでフォーマットを指定したかった場合は「設定」→「一般」にある「日付のフォーマット」がフォーマットとして取得される。

get_the_date()のフォーマットのパラメータを変更してみる
「get_the_date()」のフォーマットのパラメータを変更してみよう。コードは下記の通り。
<time><?php echo get_the_date('Y-m-d'); ?></time>
<br>
<time><?php echo get_the_date('Y年m月d日'); ?></time>
<time>2018-09-26</time>
<br>
<time>2018年09月26日</time>
フォーマットの形式については「日付と時刻の書式」を参照。
get_the_date()の投稿IDのパラメータを変更してみる
「get_the_date()」の投稿IDのパラメータを変更してみよう。初めに該当の投稿の日付を取得し、次に投稿IDが「6」の投稿を取得してみる。フォーマットを指定せずにWordPressの設定を反映させたい場合は、シングルクォーテーションで空にする必要がある。コードは下記の通り。
<time><?php echo get_the_date('Y.m.d'); ?></time>
<br>
<time><?php echo get_the_date('Y.m.d',6); ?></time>
<br>
<time><?php echo get_the_date('',6); ?></time>
<time>2018.09.26</time>
<br>
<time>2018.11.04</time>
<br>
<time>2018年11月4日</time>
上記のように指定した通りに表示された。
まとめ
これで「get_the_date()」のテンプレートタグについてお極めいただけたのではないでしょうか。通常のブログや記事であれば公開日「get_the_date()」と更新日「get_the_modified_date()」を表示させおけば良いと思うが、時間まで表示させたい場合は、「get_the_time()」を使えば実現できる。