WordPress

【WordPress/PHP】ページの投稿日/更新日を表示する方法

本記事では、WordPressでページ(記事)の投稿日/更新日を表示する方法について解説しています。

WordPressの学習におすすめ参考書
1冊ですべて身につくWordPress入門講座

本書情報
著者Mana
発売日2022/3/22
ページ数344ページ
Kindle版
レビュー
(Amazon)
(217件)

【中・上級者向け】オリジナルテーマの作り方が学べるおすすめ参考書
WordPressオリジナルテーマ制作入門

本書情報
著者清水 由規 / 清水 久美子 / 鈴木 力哉 / 西岡 由美
発売日2022/1/13
ページ数416ページ
Kindle版
レビュー
(Amazon)
(53件)
先輩くん
先輩くん
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)

関数名にgetと付いていることから分かる通り、get_the_date関数はページ投稿日/更新日を表示するのではなく返します。そのため、表示させるにはechoと組み合わせる必要があります。

実際に、複数ページの投稿日/更新日を取得するコードを用意したので動作確認してみましょう。コードを使用している場面は、トップページを表示する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>

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村