soap muse

Magcast テーマの日付表示をカスタマイズして英語表記にする。

このサイトで使用しているテーマは、Magcast。それぞれの記事で日付が表示される箇所だけでなく、サイトの上部には今日の日付が表示されています。

投稿記事を日本語表示にするのは、テンプレートの修正で良いことですが、これらの日本語表示を統一するのは手間のかかること。テーマがアップデートした時のことも考えると、管理が煩雑になるので 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 );
}

当初はテンプレートの修正で対応を考えて情報収集していましたが、プラグインを使うことなど次の各サイトを参照しました。

http://mignonstyle.com/date-tags/

WP Meta and Date Remover

WordPress日本語版 日付表示が、設定どおりに動作しない問題に対処する

コメントを残す