WordPressで投稿日の値を取得・出力する方法

はじめに

WordPressで投稿日の値を使って表現したい事があって、値を取る方法(例えば年月日全てを取得するか「年」「月」「日」を別々に取得するか)を少し調べましたので紹介します。

なお、この値を取得して実際に何かを表現するかについては現状未定です。

実装しようとしたらJavascriptやら何やら色々と複雑な事になりそうなので、準備ができたら簡易的に実装したいなと思っています。

目次

投稿が書かれた年月日を取得する

WordPressで投稿日(投稿が書かれた年月日)を取得する場合get_the_dateを使用します。

投稿日を出力したい場合は、以下のように記述します。

PHP

<?php echo get_the_date(); ?>

また、( )の中にはオプションが入り、それぞれ以下のとおりです。

PHP(オプション)

get_the_date( $format, $post_id );

日付の取得

記述 概要
$format 日付の書式形式
初期値:WordPress管理画面の「設定」>「一般」>「日付形式」と同じ
$post_id 日付を取得したい投稿の ID(省略した場合、現在の投稿が取得される)
初期値:null(現在の投稿)

$formatで使用できる値

オプション$formatで使用できる値の一部を下記にまとめました。

WordPressのユーザーマニュアル等には、例えば「’F’は英語の月表示(フルスペル) 例:January」と記載されている事があります。

しかし、実際に出力される値についてはWordPressの言語設定に依存する物も一部あります(日本語設定だと「1月」と出力されます)。

下記テーブルでは日本語と英語を分離して記載しましたが、恐らく他の言語に設定するとその言語に依存すると思います(試していないけど)。

Y 4桁の西暦 【1900、2022】
y 西暦の下2桁 【00、22】
m 1桁の場合、頭に「0」をつけた数字 【01、02・・・12】
n 1桁の場合、頭に「0」をつけない数字 【1、2・・・12】
F 日本語:「月」を含んだ数字
英語 :英語表記(フルスペル)
【1月、2月・・・12月】
【January・・・December】
M 日本語:「月」を含んだ数字
英語 :英語表記(3文字)
【1月、2月・・・12月】
【Jan・・・Dec】
d 1桁の場合、頭に「0」をつけた数字 【01、02・・・31】
j 1桁の場合、頭に「0」をつけない数字 【1、2・・・31】
s 英語 :英語形式の表示 【1st・・・31thの「st」「th」】
曜日
l 日本語:全て表記(3文字)
英語 :全て表記
【月曜日・・・日曜日】
【Monday・・・Sunday】
D 日本語:省略(1文字)
英語 :省略(3文字)
【月・・・日】
【Mon・・・Sun】

上記の他「時刻」や「年月日時刻すべて」も取得できます。

特定の投稿IDから投稿日を取得したい時

特定の投稿IDから投稿日を取得したい時は、オプションの2番目のパラメータ$post_idの箇所に、取得したい投稿ページのIDをシングルコーテーションで囲みます。

その際、1番目のパラメータに指定が無い場合は$formatの箇所は''のように空白のシングルコーテーションで囲みます。

PHP

<?php echo get_the_date('','投稿ID'); ?>

PHPを記述した場合、実際どのように出力されるか(投稿ページでは直接確認できないので)固定ページでデモを作成しました。

デモページ