Holistic Teahouse
という、オレンジ&ブラッキーなテーマ。
基本、[jqtools plugin=”ttips” title=”他にはグリーン系も好きです。”]オレンジ色は好き[/jqtools]です。ちょっと、グラデーションぽくなっているのもアクセントが効いて、ナイスポイントです。
折角良いデザインなのに、[jqtools plugin=”ttips” title=”部分的に翻訳に対応した作りにはなっているようですが、po/moファイルは付随してないようです。”]翻訳に対応していない状態[/jqtools]。
もったいないので、とりあえず、poファイルを抽出して日付関係だけを書き換えました。
その途中で気づいたのですが、ヘッダーの処に、エントリーやページを開いた際に、現在の日時を表示する仕掛けが植え込まれているのですが、どうも正しい日時を表示していないっぽい。
オリジナルのその箇所はheader.phpの49行目にあるんですが
[php][/php]
となっています。
うーん…。
確か、date関数ってサーバーのタイムゾーンを参照して表示するんじゃなかったかな…。
でも、どう見てもGMTが表示されているような気がする。
それに、phpの関数を直接扱うと、サーバーの設定に依存するから、例えば海外のサーバーにWordPressを設置していたりすると当然、そのサーバーのタイムゾーンで表示されてしまうんだよね?それはそれで[jqtools plugin=”ttips” title=”自分で使うだけなんだから直書きしてしまえば良いだけだろw”]意味がない[/jqtools]よね。
だったら、WordPressの設定を使えたら良いよね…。
と言うことで、探しました。
[php]current_time($type, $gmt);[/php]
この関数が呼び出されたタイミングの日時を返してくれる関数みたいです。
$typeには‘mysql’か‘timestamp’を入れるようです。
‘mysql’の時は
[html]2010-03-16 10:38:15[/html]の形式。
‘timestamp’の時は[html]1123238473[/html]の[jqtools plugin=”ttips” title=”UNIXタイムスタンプ?よく判らないですorz”]形式[/jqtools]で値が返ります。
$gmt = 0の処は0か1を指定できるようです。省略することも出来るようですね。
0の場合はローカル日時、1の場合はGMTで返すようです。
では、これを使って日時を表示することにしましょう。
どうせなら、翻訳を当てて、変更できるようにしてみたいですよね。
しかも、よく見ると、日付、時刻、AM/PMを分割して表示しています。
テンプレートにそのまま記述しても良いのですが、スマートではなくなってしまうので、テンプレート関数functions.phpに記述して、テンプレートでは関数を呼び出すことで表示させるようにしました。
functions.phpへの追記
[php]function now_date_time($fstr) {
$now_DeteTime = date_create(current_time(‘mysql’));
echo date_format($now_DeteTime,$fstr);
}[/php]
引数$fstrは翻訳された文字列を受け取ります。current_time()関数を‘mysql’で呼び出しているのはタイムゾーン処理がめんどくさかったからですw
phpの日時変換関数は実行時にタイムゾーンを参照するようなのでそれを考えるのがおっくうだったからです。要するに逃げました…ごめんなさいorz
で、受け取った文字列を元に、date_create()関数で日時オブジェクトを作成してdate_format()関数で書式整形を行って出力します。
このファンクション一つで日付、時刻、AM/PMを表示させることが出来るようになります。
テンプレートには[php][/php]と記述します。
[php]__(‘F jS\, Y’,’holistic-teahouse-gdgd’)[/php]は翻訳ファイルから‘F jS\, Y’に該当する翻訳文字列を返す関数です。
まあ、こんな感じです。
何はともあれ、ちゃんと動作して良かったです。
次はどうしようかな(^_^)b