本記事では、WordPressでthe_date関数で公開日/更新日が表示されない時の原因と対処法について解説しています。
WordPressの学習におすすめ書籍
1冊ですべて身につくWordPress入門講座
メリット
- サイト運営に必須のことが学べる
- 基本的な使い方~オリジナルテーマ開発まで学べる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
原因
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; ?>