WordPress における日付/時間の表示とフォーマット変更方法
WordPress への記事投稿日の日付および時間の表示方法と、日付/時刻フォーマットを変更するカスタマイズをご紹介します。
このエントリーのきっかけは、当サイトで配布しているテーマに表示される記事投稿時間を24時間表記に変更する方法についてのご質問だったのですが、それだけでは何なので一通り調べてみました。
1.概要
テンプレートの記事投稿時間を表示したい位置に
<p><?php the_time() ?></p>を設定すると、下のように時刻情報に変換されてページに表示されます。
<p>21:07:51<p>2.テンプレートタグ
日付表示用テンプレートタグには次の2つがあります。
2.1 the_time
記事の投稿時間を表示します。書式は次の通りです。
<?php the_time('format') ?>format には2項以降に示す「表示フォーマット」を設定します。
カッコ内を省略すると、4項の管理画面に設定した表示フォーマットが適用されます。
2.2 the_date
記事の投稿時間を表示します。書式は次の通りです。
<?php the_date('format', 'before', 'after', echo) ?>the_time との違いは、
- 同一日に複数記事がある場合は最初の記事にだけ表示
- 日付/時間の前後に表示するテキストの指定が可能
- PHPの変数として取得可能(その場合、表示されません)
が挙げられます。特に一つ目の振る舞いが大きな違いですので、使用する場所に応じて使い分けると良いでしょう。
format は3項以降に示す「表示フォーマット」を設定します。before は日付/時間の前に表示するテキスト、after は日付/時間の後に表示するテキスト、echo は、日付/時間を表示する場合は true、変数として取得する場合は false を設定します。
変数として取得する場合のサンプルを以下に示します。
<?php $my_date = the_date('', '', '', false); ?>カッコ内を全て省略すると、4項の管理画面に設定した表示フォーマットが適用されます。
管理画面に設定した表示フォーマットを適用し、なおかつ日付/時間の前後にテキスト(ここでは p 要素をサンプルとして設定)を表示したい場合は、次のようにします。
<?php the_date('', '<p>', '</p>') ?>このタグのパラメータに前後のテキストが設定できる理由は、仮にタグの外側に HTML タグを設定した場合、(同一日付のエントリーが複数あると)このタグが表示されないことがあり、外側に設定した HTML タグが残ってしまいます。これを避けるためにパラメータとしてタグを設定できるようにしています。
3.表示フォーマット
表示フォーマットは、時間を表示するフォーマット文字(後述)と、任意の文字列で構成されます。
1項のように the_time を利用して
<p>21:07:51</p>という表示にしたい場合は、時分秒のフォーマット文字「h」「i」「s」と、それぞれを区切る文字「:」で、
<p><?php the_time('h:i:s') ?></p>というフォーマットをパラメータに設定します。
4.フォーマット設定方法
フォーマットは次のいずれかの方法で設定することができます。
- 管理画面の [オプション] - [一般設定] - [日付のフォーマット/時間のフォーマット]
- テンプレートタグに直接記述
「テンプレートタグに直接記述」というのは、2.1項の例では
<?php the_time('h:i:s') ?>という風に、カッコ内にパラメータとして表示フォーマットを設定することを指します。
管理画面での設定箇所は下のスクリーンショットの通りです。「日付のフォーマット:」フィールドの内容が the_date、「時刻のフォーマット:」フィールドの内容が the_time に対応しています。

フィールドに設定されたフォーマットを利用するには、2項に記した通り、テンプレートタグの the_date 、the_time のパラメータが空きであることが条件となります。
当サイトで配布しているテーマでは日付フォーマットを直接テンプレートに埋め込んでますので、管理画面から設定できるようにするには、テンプレートの下記の部分をそれぞれ変更してください。
日付表示(変更前) *1
<?php the_date('Y.m.d', '<p class="date">', '</p>') ?>日付表示(変更後)
<?php the_date('', '<p class="date">', '</p>') ?>時間表示(変更前)
Posted at <?php the_time('h:i') ?>時間表示(変更後)
Posted at <?php the_time() ?>5.フォーマット文字一覧
PHP:date より、よく使われそうなフォーマット文字を抜粋し、下記にまとめてみました。
なお、日本語版 WordPress の場合、表中の月表示および曜日表示は日本語になります(英語表記にする場合の変更方法は「WordPress の月・曜日を英語表記にする」を参照)。
| 単位 | フォーマット文字 | 意味 | 表示例 | 
|---|---|---|---|
| 年 | Y | 4桁の数字 | 1999, 2003 | 
| y | 2桁の数字 | 99, 03 | |
| 月 | m | 2桁の数字 | 01 - 12 | 
| n | 1桁または2桁の数字 | 1 - 12 | |
| F | フルスペル | January - December | |
| M | 3文字の省略形式 | Jan - Dec | |
| 日 | d | 2桁の数字 | 01 - 31 | 
| j | 1桁または2桁の数字 | 1 - 31 | |
| 曜日 | D | 3文字の省略形式 | Mon - Sun | 
| l | フルスペル | Sunday - Saturday | |
| 午前/午後 | a | 小文字 | am / pm | 
| A | 大文字 | AM / PM | |
| 時 | h | 2桁の数字・12時間表示 | 01 - 12 | 
| g | 1桁または2桁の数字 12時間表示 | 1 - 12 | |
| H | 2桁の数字・24時間表示 | 00 - 23 | |
| G | 1桁または2桁の数字 24時間表示 | 0 - 23 | |
| 分 | i | 先頭にゼロをつける | 00 - 59 | 
| 秒 | s | 先頭にゼロをつける | 00 - 59 | 
以下は年月日・時分秒の設定早見表です。
| 年 | 月 | 日 | 設定例 | 表示 | |||
|---|---|---|---|---|---|---|---|
| 4桁 | Y | 2桁 | m | 2桁 | d | Y/m/d | 2007/01/01 | 
| 0なし | j | Y/m/j | 2007/01/1 | ||||
| 0なし | n | 2桁 | d | Y/n/d | 2007/1/01 | ||
| 0なし | j | Y/n/j | 2007/1/1 | ||||
| 2桁 | y | 2桁 | m | 2桁 | d | y/m/d | 07/01/01 | 
| 0なし | j | y/m/j | 07/01/1 | ||||
| 0なし | n | 2桁 | d | y/n/d | 07/1/01 | ||
| 0なし | j | y/n/j | 07/1/1 | ||||
| 時 | 分 | 秒 | 設定例 | 表示 | |||
|---|---|---|---|---|---|---|---|
| 12時間表記・2桁 | h | 2桁 | i | 2桁 | s | h:i:s | 01:02:03 | 
| 12時間表記・0なし | g | g:i:s | 1:02:03 | ||||
| 24時間表記・2桁 | H | H:i:s | 13:02:03(01:02:03) | ||||
| 24時間表記・0なし | G | G:i:s | 13:02:03(1:02:03) | ||||
6.参考・関連リンク
2007.03.13 追記
テンプレート改修に伴い、4項の記述を修正しました。
*1:2007.03.13 以前にテンプレートをダウンロードされた場合、メインページ/アーカイブページについては下記の変更を行ってください。
日付表示(変更前)
<p class="date"><?php the_time('Y.m.d') ?></p>日付表示(変更後)
<p class="date"><?php the_date() ?></p>- WordPressのタグアーカイブにnoindexを設定する方法
- WordPressで正しいユーザー・パスワードでログインできなくなった場合の対処
- WordPressのthe_excerpt()をカスタマイズする
- WordPressで抜粋の文字数を変更する方法
- WordPress 3.0にMovable Typeのタグをインポートする
- WordPress 3.0 で廃止された非推奨グローバル変数一覧
- WordPress の the_date を変更して記事ごとに日付を表示する
- 著作権表示の年号を自動更新するプラグイン V1.1 for WordPress
- 著作権表示の年号を自動更新するプラグイン for WordPress
- WordPress でステータスコード 404(Not Found)を返却するエラーページを作る
- WordPress に Movable Type 風の「Syndicate this site」を表示する
≫ テーマ変更してみました from oshiire*BLOG
いつもどおりの現実逃避です。気持ちいいです。
ところが、どうしても納得のいかない部分があるのです。これだけに限らず、WordPress のテーマでは、日付... [続きを読む]
≫ 続・vectorizeの修正 from Idle Away
既に昨日のうちに修正済みでしたが、備忘録的に書いておこうと思います。
■「Recent Posts」の日付フォーマット
もともとのフォーマットが、2... [続きを読む]
≫ WordPressに投稿の日付だけじゃなく時間も表示したい! from 「ふぉしむ」のブログ
「mg12」さんの作ったテーマ、はじめから日本語対応してくれてるのはうれしいんだけど、 やっぱり投稿時間は表示されないですね。 年月日だけ。。 外国の人は... [続きを読む]
 



