ブログテーマなら必須といえるのが日付の取得です。

  • いつ公開された記事なのか
  • 最終的に更新された日付はいつなのか

ページに訪れたユーザーは必ず知っておきたい情報ですよね。当記事では、WordPressでこれらの日付を取得する方法について解説していきます。

WordPressで日付を取得できる関数4つ

WordPressの投稿や固定ページなどの日付を扱う関数は以下の4つになります。どれも投稿や固定ページ、カスタム投稿すべてで利用できます。

the_time() 公開日付の出力 公式ページ
get_the_time() 公開日付の取得 公式ページ
the_modified_time() 最終更新日付の出力 公式ページ
get_the_modified_time() 最終更新日付の取得 公式ページ

the_time():公開日付の出力

公開日付をサイト上に表示できる関数です。以下のように記載するだけで簡単に公開日付を表示できます。

// 公開日付が2023年11月27日の場合
the_time( 'Y年m月d日' );

// 出力結果
// 2023年11月27日

ただし、この関数は現在の投稿の日付のみを出力する仕様のため、以下を実現できないことに注意してください。

  • WordPressループ以外で利用する
  • 特定の記事の日付を表示する
  • 変数に日付を格納する

これらを実現する場合は、次に紹介するget_the_time()をお使いください。

get_the_time():公開日付の取得

公開日付を取得できる関数です。こちらは、第二引数に特定の投稿ID(オブジェクトも可)を指定することで、任意の投稿の公開日付を取得することが可能です。

// 公開日付が2023年11月27日の場合
$date = get_the_time( 'Y年m月d日' );
echo $date;

// 出力結果
// 2023年11月27日

// 特定の投稿の日付を取得(ID:24)
get_the_time( 'Y年m月d日', 24 );

WordPressループ外で使いたい、変数に公開日付を格納したい場合は、こちらを利用するといいですね。

the_modified_time():最終更新日付の出力

最終更新日付をサイト上に表示できる関数です。WordPressの投稿や固定ページでは、公開日付とは別に最後に「更新」した時の日付も保存されています。

この最終更新日付も、以下のように記載するだけで、簡単に表示できます。なお、公開後に更新されていなければ「公開日付 = 最終更新日付」となります。

// 最後に更新した日付が2023年11月28日の場合
the_modified_time( 'Y年m月d日' );

// 出力結果
// 2023年11月28日

この関数もthe_time()同様に、現在の投稿の最終更新日付のみを出力する仕様のため、以下を実現できないことに注意してください。

  • WordPressループ以外で利用する
  • 特定の記事の日付を表示する
  • 変数に日付を格納する

これらを実現する場合は、次に紹介するget_the_modified_time()をお使いください。

get_the_modified_time():最終更新日付の取得

最終更新日付を取得できる関数です。get_the_time()同様に、第二引数に特定の投稿ID(オブジェクトも可)を指定することで、任意の投稿の最終更新日付を取得できます。

// 最後に更新した日付が2023年11月28日の場合
$date = get_the_modified_time( 'Y年m月d日' );
echo $date;

// 出力結果
2023年11月28日

// 特定の投稿の最終更新日付を取得(ID:24)
get_the_modified_time( 'Y年m月d日', 24 );

WordPressループ外で使いたい、変数に最終更新日付を格納したい場合は、こちらを利用するといいですね。

日付フォーマット(Y年m月d日)について

ここまで紹介した4つの関数の第一引数すべてに「Y年m月d日」と入力していました。これ何?と思われた方が多いのではないでしょうか?

WordPessの日付を扱う関数には、第一引数に日付フォーマットを指定できます。日付フォーマットとは、表示する日付の形式になります。例えば「Y年m月d日」を変更すると以下のように形式が変わります。

// 公開日付が2023年11月27日の場合
the_time( 'Y年m月d日' ); // 出力結果 2023年11月27日
the_time( 'Y/m/d' );    // 出力結果 2023/11/27
the_time( 'Y.m.d' );    // 出力結果 2023.11.27
the_time( 'm/d' );      // 出力結果 11/27

なお、この「Y」,「m」,「d」にも、それぞれ何を意味するかPHPで定義されています。詳しくは日付の書式設定をご覧ください。年月日で使う代表的なものを以下に記載しておきますので、参考にしてください。(他に時刻や曜日、タイムスタンプなども取得できます。)

j 日(1桁の数字) 1〜31
d 日(2桁の数字) 01〜31
n 月(1桁の数字) 1〜12
m 月(2桁の数字) 01〜12
y 年(2桁の数字) 2023の場合「23」
Y 年(4桁の数字) 2023

    なお、この日付フォーマットを指定しなかった場合、WordPressの一般設定の「時刻形式」が反映されます。

    WordPressの一般設定 > 時刻形式

    WordPressの一般設定 > 時刻形式

    この設定は時刻だけなので、日付を表示する場合は、日付フォーマットを引数に指定するようにしましょう。なお、WordPressの一般設定の日付形式を反映させたい場合は以下のように記載してください。

    the_time( get_option( 'date_format' ) );
    

    the_date()について

    WordPressで日付を扱う関数で有名なのが「the_date()」です。こちらも公開日付を表示できる便利な関数なのですが、仕様が少々特殊なため、利用しない方が多いです。

    その仕様というのが、記事一覧で、同じ公開日付の記事が存在していた場合に最初の1つだけしか日付を表示しないというものです。例えば、当サイトの投稿アーカイブページで、表示されている記事の日付がすべて「2023年11月27日」だった時の表示をみてみましょう。

    the_time()を使った方法

    the_time()を使った場合(同じ日付でも表示されている)

    the_date()を使った方法

    the_date()を使った方法(2つ目以降の日付が表示されない)

    同じ日付で複数の記事が公開されることは全然ありえるので、日付が表示されないのはユーザーにとって非常に不便ですよね。この問題から当記事では、日付を取得する関数としてthe_time()を紹介しています。

    まとめ

    WordPressで日付を表示する方法について解説しました。the_date()を使う方法もありますが、記事一覧で必ず日付が表示されるようthe_time()を使った方が間違いないでしょう。

    なお、投稿の情報を取得するその他の関数についても以下でご紹介してますので、ぜひ参考にしてください。