WordPressの日付を英語表記にする方法と日付タグまとめ

一覧ページに表示する日付を英語表記にする際にいろいろ調べたので、覚え書きとして日付のテンプレートタグや英語表記についてまとめてみました。
Contents
日付のフォーマットの設定
WordPressの日時は、管理画面「一般」の「日付のフォーマット」と「時刻フォーマット」で設定したフォーマットで表示されます。
管理画面で設定したデフォルトのフォーマット以外で表示したいときは、パラメータを指定すると指定したフォーマットで表示されます。
<?php the_date( 'Y年m月d日' ); ?>
と書くと
2013年10月21日
と表示されます。
日付の表記の仕方はWordPress Codexに書かれています。
日付と時刻の書式 | WordPress Codex 日本語版
日付を表示するテンプレートタグ
the_time
記事の投稿日時を表示します。
デフォルトは時間だけの表示で、パラメータをいれると日時を表示します。
同じ日に複数の記事がある場合は、すべての記事に表示します。
英語形式は翻訳して表示します。
書式
<?php the_time( 'd' ); ?>
パラメータ | 説明 |
---|---|
d | 日時のフォーマット。 デフォルトは管理画面で設定した時刻フォーマット。 |
記述例
時間をデフォルトのフォーマット(21:00)で表示する
<?php the_time(); ?>
2013年10月21日 月曜日と表示する
<?php the_time( 'Y年m月d日 D曜日' ); ?>
日付を管理画面で設定したフォーマット(2013/10/21)で表示する
<?php the_time( get_option( 'date_format' ) ); ?>
get_option( 'date_format' )
は管理画面「一般」で指定している日付のフォーマットの値を取得します。
テンプレートタグ/the time | WordPress Codex 日本語版
the_date
記事の投稿日時を表示します。
同じ日に複数の記事がある場合は、最初の記事にだけ表示します。
英語形式は翻訳して表示します。
書式
<?php the_date( 'format', 'before', 'after', echo ); ?>
パラメータ | 説明 |
---|---|
format | 日時のフォーマット。 デフォルトは管理画面で設定した日付フォーマット。 |
before | 日時の前に表示する文字やコード。 |
after | 日時の後に表示する文字やコード。 |
echo | true 日時を表示する。(デフォルト) |
false 日時をPHPで使用できる値として取得する。 |
記述例
日付をデフォルトのフォーマット(2013/10/21)で表示する
<?php the_date(); ?>
2013年10月21日 月曜日と表示する
<?php the_date( 'Y年m月d日 D曜日' ); ?>
the_date()は同じ日に複数の記事がある場合は、最初の記事にのみ日時を表示します。
テンプレートタグ/the date | WordPress Codex 日本語版
get_the_date
記事の投稿日時を表示します。
同じ日に複数の記事がある場合は、すべての記事に表示します。
英語形式は翻訳して表示します。
書式
<?php get_the_date( 'd' ); ?>
パラメータ | 説明 |
---|---|
d | 日時のフォーマット。 デフォルトは管理画面で設定した日付フォーマット。 |
記述例
日付をデフォルトのフォーマット(2013/10/21)で表示する
<?php echo get_the_date(); ?>
2013年10月21日 月曜日と表示する
<?php echo get_the_date( 'Y年m月d日 D曜日' ); ?>
get_the_date()で日時を表示するときはechoを記述します。
テンプレートタグ/get the date | WordPress Codex 日本語版
日付を英語表記で表示する方法
get_post_time
記事の投稿日時を表示します。
同じ日に複数の記事がある場合は、すべての記事に表示します。
英語形式は翻訳せずに表示します。
書式
<?php get_post_time( 'd', 'gmt', 'post', 'translate' ); ?>
パラメータ | 説明 |
---|---|
d | 日時のフォーマット。 デフォルトは U(1970年1月1日0時0分0秒からの秒数)。 |
gmt | true グリニッジ標準時の時刻で表示する |
false タイムゾーンで設定してある地域の時刻で表示する(デフォルト) | |
post | 指定した投稿ID、投稿データの日時を表示する。 指定しないときは現在の投稿の日時を表示する。(デフォルト) |
translate | true 英語形式を翻訳する。 |
false 英語形式を翻訳しない。(デフォルト) |
記述例
2013年10月21日と表示する
<?php echo get_post_time( 'Y年m月d日' ); ?>
2013年10月21日 月曜日と表示する
<?php echo get_post_time( 'Y年m月d日 D曜日', '', '', true ); ?>
October 21, 2013と英語表記で表示する
<?php echo get_post_time('F d, Y'); ?>
get_post_time()で日時を表示するときはechoを記述します。
the_time、the_date、get_the_dateは日時を翻訳して表示するけど、get_post_timeはデフォルトでは翻訳されないので、デザインで部分的に英語表記にしたいときはget_post_timeを使うと簡単そうです。
Template Tags/get post time | WordPress Codex(英語)
フィルターフックを使用する
日本語環境で日付フォーマットの設定を英語表記にするフィルターフックです。
テーマのfunctions.phpに以下の記述を追加するだけで、簡単に英語表記になります。
functions.php
add_filter( 'date_i18n', 'ja_date_i18n', 10, 4 ); function ja_date_i18n( $date , $req_format, $i, $gmt){ if( defined('WPLANG') and WPLANG == 'ja' ) { // formatがcの場合、+00:00を+09:00に修正する $format= sprintf( '%1$02d:00', get_option( 'gmt_offset' ) ); $date = str_replace( '+00:00', '+'.$format, $date ); // 日本語環境で、フォーマットに英語表記を使用する if ( preg_match( '![SlDFM]!', $req_format ) ) { return apply_filters( 'ja_date_i18n', date( $req_format, $i ) ); } } return apply_filters( 'ja_date_i18n', $date ); }
WordPress日本語版 日付表示が、設定どおりに動作しない問題に対処する | WordPress Snippet
プラグイン「EnglishDate」を利用する
曜日と月を英語表記にしてくれるプラグインです。
使い方はプラグインをアップロードして有効化するだけ!
WordPress3.6.1でも問題なく使えました。
これだけではウィジットの月別アーカイブやカレンダーの表記が 2013年October となってしまうので、wp-includes/general-template.php ファイルを修正します。
月別アーカイブの表記をOctober, 2013と表示する
$text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($result->month), $result->year);
「'%1$s %2$d'
」にカンマを加えて「'%1$s
,
%2$d'
」に修正します。
$text = sprintf(__('%1$s, %2$d'), $wp_locale->get_month($result->month), $result->year);
カレンダーの表記をOctober, 2013と表示する
$calendar_caption = _x('%1$s %2$s', 'calendar caption');
「'%1$s %2$s'
」にカンマを加えて「'%1$s
,
%2$s'
」に修正します。
$calendar_caption = _x('%1$s, %2$s', 'calendar caption');
コアファイルを修正するので、WordPressをアップデートするたびに general-template.php ファイルを修正しないと、表示が元に戻ってしまうので注意してください。
コアファイルを修正する以外の方法をご存知の方、教えて頂けると助かります!
日本語版WordPressの曜日・月表記を英語にする方法 | W.C.T_FEEL
WordPress >> 日付表示を英語表記にする。 | CHROMANOTE
その他の方法
日付を英語表記にする方法は他にもwp-includes/locale.phファイルを修正する方法やfunctions.phpへ記述する方法もあります。
WordPress の月および曜日を英語表記にする | 小粋空間
WordPressの日付表示を英語表記+Webフォントでカスタマイズする | Ateitexe
最後に
日付の表記にもいろいろなテンプレートタグがあるので、目的によって使い分けるのがいいかなーと思います。
日付のテンプレートタグについては WordPressテンプレートタグ チートシート でも少し紹介しているので、よかったら見てみて下さい :)
1件のトラックバック
[WordPress]テーマを自作する〜その①〜投稿日などの日付表示を英語表記にする | Sorairo
[…] WordPressの日付を英語表記にする方法と日付タグまとめ | Mignon Style […]
2014/01/18