【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

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

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

WordPressの学習におすすめ書籍
1冊ですべて身につくWordPress入門講座
総合評価
( 5 )
メリット
  • サイト運営に必須のことが学べる
  • 基本的な使い方~オリジナルテーマ開発まで学べる
楽天ブックス
¥2,200 (2024/10/09 17:50時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

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アクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次