WordPress

【WordPress/PHP】the_date関数で公開日/更新日が表示されない時の原因と対処法

本記事では、WordPressでthe_date関数で公開日/更新日が表示されない時の原因と対処法について解説しています。

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

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

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

本書情報
著者清水 由規 / 清水 久美子 / 鈴木 力哉 / 西岡 由美
発売日2022/1/13
ページ数416ページ
Kindle版
レビュー
(Amazon)
(53件)
先輩くん
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
後輩ちゃん
後輩ちゃん
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

原因

WordPressで投稿したページ(記事)の公開日/更新日を表示させたい時に使用されるthe_date関数ですが、特定の条件下では想定外の挙動を取ります。

その条件下とは、「複数ページの公開日/更新日を表示させる」「同日に複数ページを公開or更新している」が重なった時です。

何故、上記の条件に当てはまると想定外の挙動を取るのかその理由はthe_date関数は、同日に複数の記事がある場合は、最初の記事とともに一度だけ出力される。という性質を持っているからです。

対処法

では、どのようにすれば想定通りの挙動を取ってくれるか解説します。

the_date関数の性質上、複数ページに対しての出力は難しいので代わりにget_the_date関数を使用します。get_the_date関数は、the_date関数と同じくページの公開日/更新日を表示することが可能ですが異なる点があります。それは、ページの公開日/更新日を表示するのではなく取得します。そのため、取得した情報をechoで表示させる必要があります。

<p><?php echo get_the_date(); ?></p>

if~while文から記述したコードは以下のとおりです。

<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <p><?php echo get_the_date(); ?></p>
    <?php endwhile; ?>
<?php endif; ?>

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