MENU

the_date()

the_date() は、WordPressで投稿の日付を表示するためのテンプレートタグです。

同じ日付の複数の投稿が続く場合、一度だけその日付を表示するのが特徴です。

目次

機能の説明

the_date() は、特定の日付形式に従い、投稿の日付を一度だけ表示するテンプレートタグです。

複数の投稿が同じ日付に公開されている場合、2つ目以降の投稿では日付が重複して表示されません。

シンプルなコード例

<?php the_date(); ?>

現在のループ内の投稿の日付を表示します。同じ日付の複数の投稿があっても、最初の1つだけで日付が表示されます。

使い方の解説

関数

the_date($format, $before, $after, $display)

引数

  • $format: 日付のフォーマット(例:'Y-m-d')。
  • $before: 日付の前に付ける文字列。
  • $after: 日付の後に付ける文字列。
  • $display: true でエコー(出力)、false で文字列を取得。

シンプルに日付を表示する

<?php the_date(); ?>

最初の投稿だけに「October 14, 2024」などの日付が表示されます。

日付にフォーマットを指定する

<?php the_date('Y年m月d日'); ?>

「2024年10月14日」という形式で表示されます。

プレフィックスとサフィックスを付ける

<?php the_date('Y年m月d日', '<strong>', '</strong>'); ?>

日付を <strong> タグで囲んで表示します。

日付を取得して変数に格納する

$date = the_date('', '', '', false);
if ($date) {
    echo '<h3>公開日: ' . $date . '</h3>';
}

false を指定して取得した日付を変数に格納し、<h3> タグで囲んで表示します。

一緒に使うことが多い関連タグ

get_the_date()

get_the_date() は、投稿の日付を取得するためのタグです。the_date() がエコーするのに対して、get_the_date() は文字列として日付を返します。

echo '<p>公開日: ' . get_the_date('Y年m月d日') . '</p>';

「公開日: 2024年10月14日」という形式で表示します。

the_time()

the_time() は、投稿の公開時間を表示するタグです。the_date() と組み合わせることで、日付と時間の両方を表示することが可能です。

echo the_date('Y年m月d日') . ' ' . the_time('H:i');

「2024年10月14日 14:30」のように、日付と時間を組み合わせて表示します。

関連タグを組み合わせたコード

if (have_posts()) {
    while (have_posts()) {
        the_post();
        echo '<h2>' . get_the_title() . '</h2>';
        echo '<p>公開日: ' . get_the_date('Y年m月d日') . '</p>';
    }
}

各投稿のタイトルと公開日を表示する例です。

追加情報を取得したい場合

get_the_modified_date() で投稿の更新日を取得

投稿が編集されている場合、その更新日を取得するタグです。

echo '<p>最終更新日: ' . get_the_modified_date('Y年m月d日') . '</p>';

最終更新日を「2024年10月14日」という形式で表示します。

出力できる情報

  • format: 日付のフォーマット(例:Y-m-d
  • modified_date: 投稿の最終更新日

想定されるトラブル

同じ日付の投稿で2つ目以降の日付が表示されない

the_date() の仕様により、同じ日付の投稿では最初の投稿だけに日付が表示されます。

解決方法

<?php echo get_the_date('Y年m月d日'); ?>

get_the_date() を使って、毎回日付を表示するようにします。

日本語の日付形式が反映されない

日付フォーマットの指定が不正です。

解決方法

'Y年m月d日' のように、PHPのフォーマット文字を使います。

Q&A

the_date()get_the_date() の違いは何ですか?

the_date() は同じ日付の投稿では最初の1つだけに日付を表示しますが、get_the_date() はすべての投稿で日付を取得できます。

日付を表示せずに取得する方法はありますか?

第4引数に false を指定することで、日付を文字列として取得できます。

$date = the_date('', '', '', false);

投稿の更新日も表示したい場合はどうすれば良いですか?

get_the_modified_date() を使用して、最終更新日を表示します。

echo get_the_modified_date('Y年m月d日');

まとめ

the_date() は、投稿の日付を一度だけ表示する便利なテンプレートタグです。

同じ日付の投稿が続く場合に冗長な日付表示を避けられます。

常に日付を表示したい場合は、get_the_date() を使うと良いでしょう。さらに、the_time()get_the_modified_date() と組み合わせることで、公開日や更新日時の情報も簡単に取得・表示できます。

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

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次