understandard

2013-01-21

WordPress 日本語版で英語の日付表記をしたいとき用メモ

WordPress で記事の投稿日時の部分を英語表記にしたい場合、日本語版を使っていると the_timethe_date などでは意図したように出力されません。
the_time('M jS, Y'); などとすると、「1月 18th, 2012」と出力されてしまいます。

調べてみると、get_post_time で意図通りの表示が実現。

Template Tags/get post time « WordPress Codex

echo get_post_time('M j, Y'); // Jan 21st, 2013 と出力される

また、記事の更新の日付も同様にしたい場合には、get_post_modified_time を使うことで可能。
get_post_modified_time は Atom の出力に使われているみたいです。

Function Reference/get post modified time « WordPress Codex

ということで、英語での日付表記は、以下のようにしておけば可能(今回不要な引数については省略してます)。

echo get_post_time('M jS, Y');
echo get_post_modified_time('M jS, Y');

get_post_modified_time を見つけて、無事解決となったあとで、まとりさんの記事を発見したので、こちらもメモ。

WordPress 日本語版で、テーマ内の日付を英語表記で表示する | Unformed Building

get_post_timeget_post_modified_time を wp-includes/general-template.php で見てみると、2つとも mysql2date を使っているので、まとりさんの記事にあるように、以下のようにしても意図通りの表示になります。

mysql2date('M jS, Y', $post->post_date, false);
mysql2date('M jS, Y', $post->post_modified, false);

Function Reference/mysql2date « WordPress Codex