本記事では、WordPressでページ(記事)の投稿日/更新日を表示する方法について解説しています。
- サイト運営に必須のことが学べる
- 基本的な使い方~オリジナルテーマ開発まで学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
1件のみページ投稿日/更新日を表示させたい場合
WordPressでページの投稿日/更新日を表示させるには、the_date関数を使用します。基本的な使い方は以下のとおりです。
<?php the_date( $format, $before, $after, $echo ); ?>
- $format(省略可能):日時の出力形式を指定します。デフォルト値は管理画面のオプションで設定した形式です。
- $before(省略可能):投稿/更新日の直前に出力するコードやテキストを指定します。(初期値:なし)
- $after(省略可能):投稿/更新日の直後に出力するコードやテキストを指定します。(初期値:なし)
- $echo(省略可能):日付を出力するか取得するか真偽値で指定します。trueを指定した場合は日付を出力し、falseを指定した場合は日付を取得します。
実際に、投稿日/更新日を取得するコードを用意したので動作確認してみましょう。コードを使用している場面は、各投稿記事を表示するsingle.phpで使用していると想定します。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<p>投稿日:<?php the_date(); ?></p>
<?php endwhile; ?>
<?php endif; ?>
出力されたHTMLの結果を確認すると、正しく投稿日/更新日が表示されていることが分かります。
<p>投稿日:2023年5月23日</p>
複数ページの投稿日/更新日を表示させたい場合
先ほどのthe_date関数を使用して投稿日/更新日を表示させるコードは1件のページデータであれば問題ありませんが、トップページ/アーカイブページなどの一覧データを表示させる時に使用すると投稿日/更新日が正しく表示されない時があります。
表示されない時の原因は、the_date関数は「同じ日に複数の記事がある場合は、最初の記事とともに一度だけ出力される。」という性質を持っているからです。
つまり、2023年5月23日に5件ページを投稿した場合、the_date関数は5回同じ投稿日を表示するのではなく、1回だけ2023年5月23日の投稿日を出力します。
これを回避するには、get_the_date関数を使用します。
<?php $pfx_date = get_the_date( $format, $post_id ); ?>
- $format(省略可能):日時の出力形式を指定します。デフォルト値は管理画面のオプションで設定した形式です。
- $post_id(省略可能):日付を取得したい投稿のIDを指定します。省略すると現在の投稿から取得されます。(初期値:null)
実際に、複数ページの投稿日/更新日を取得するコードを用意したので動作確認してみましょう。コードを使用している場面は、トップページを表示するfront-page.phpで使用していると想定します。※メインクエリはpostとします。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<p>投稿日:<?php echo get_the_date(); ?></p>
<?php endwhile; ?>
<?php endif; ?>
出力されたHTMLの結果を確認すると、正しく複数ページの投稿日/更新日が表示されていることが分かります。
<p>投稿日:2023年5月23日</p>
<p>投稿日:2023年5月23日</p>