私の回答は少しずれてましたね^^; でも、元に戻せたようで何よりです。
日付のフォーマットを弄るのは、本体を改造したほうが手っ取り早いということでしょうか。
ja.moというファイルの、日付表示を指定する箇所を探して修正すればいいということでしょうかね
はい。ただ、バージョンアップする度に修正が必要になってしまうので、 ja.mo の中身を修正するだけで解決すればそれに越したことはありませんね。
とはいえ minatosakurai さんの場合、アーカイブの日付のフォーマットを変更するよりも、
各記事の日付表示を「Jul.10 2009(曜日表示なし)」のような表示にしたくて
という点を今度はどうやって解決するかが問題になるんじゃないかなと思います。
本来 Jul としたいところが 7 月 というようになってしまうのを、テンプレートの特定の箇所のみで回避する方法があります。テンプレート上の日付を指定する部分で、日付のフォーマットを一度 Unix タイムスタンプの形式にして、その値を date()
関数に渡し、その段階で本来のフォーマットへの変換を行うんです。
以下は the_date()
の場合、 echo get_the_time()
の場合、それぞれの例です。
<?php
// the_date() : 1 つ前の投稿と同じ日の場合表示されない
if ( !$dformat ) $dformat = get_option('date_format');
$the_date = the_date( 'U', null, null, false ); // Unix タイムスタンプ or ''
if ( !empty( $the_date ) ) echo date( $dformat, $the_date );
?>
<?php
// echo get_the_time() : 常に指定のフォーマットで表示する
if ( !$dformat ) $dformat = get_option('date_format');
$the_date = get_the_time('U'); // Unix タイムスタンプ
echo date( $dformat, $the_date );
?>
上記の例では、 $dformat には管理ページで設定した日付のフォーマットが入りますが、直接任意のフォーマットを指定してもいいと思います。
<?php
// the_date()
$the_date = the_date( 'U', null, null, false );
if ( !empty( $the_date ) ) echo date( 'M.n Y', $the_date );
// echo get_the_time()
echo date( 'M.n Y', get_the_time('U') );
この方法で、各投稿の日付部分ではローカライズを回避し、 July や Sat のような英語の形式を使い、一方で日付のアーカイブや管理ページ上では 7 月 というローカライズ後の表記を保持、といったことが出来ます。