2012年2月
« 1月    
 12345
6789101112
13141516171819
20212223242526
272829  

カテゴリー

WordPressテンプレートの日付書式の変更

先日、Carrington Mobileというテンプレートを使って、当サイトをモバイル対応しました。

スマートフォンでもきれいに表示されてなかなか優れものですが、1点難点が。

記事の日付がことごとく文字化け、または表示されない

原因は、テンプレートのコメントの日付、時間のフォーマット処理がうまく働いていない。

該当箇所を見つけ出し、とりあえず固定のyyyy.mm.dd形式にして解決。

ちなみに、当サイトのPC版テンプレートAtahualpaでも同様の現象が起こります。

該当箇所の見つけ方としては、ベタですが、

themes/… 以下の該当テンプレートディレクトリを”date(”などでgrepする。

見つかったPHPのget_comment_dateやcomment_datedateなどを呼び出し箇所を探して以下のように直す。

<p>by <cite><?php comment_author_link() ?></cite> on <a href=”#comment-<?php comment_ID() ?>” title=”"><?php comment_date(‘Y.m.d ‘) ?> <?php comment_time(‘H:i:s‘) ?></a> <?php edit_comment_link(‘e’,”,”); ?></small></p>

ここに別の書式文字が指定されていたり、引数なしの場合、うまく表示されないことが多いです。

※但し、これらの関数の挙動はホスティングしているサーバーのPHPの設定やロケールで変わるので、一概にそうとは言えない。

該当ファイルは、Atahualpaの場合、

bfa_custom_comments.php

※ちなみに、このファイルが関係するのはコメントの日付。記事の日付などは、Atahualpaのテーマオプション画面で変更できます。(%date()% の部分を%date(‘Y.m.d H:i:s’)%などに変える。)

<?php printf(__(‘%1$s  ‘at’を削る %2$s’,'atahualpa’), get_comment_date(__(‘Y.m.d‘,’atahualpa’)),  get_comment_time(__(‘H:i:s‘,’atahualpa’))) ?>

Carrington Mobileの場合は、

comment-default.php

など数ファイルです。

PHPの書式フォーマットについては、こちら

本当は、タイムゾーンをUTCで管理して、アクセス元のIPなどで国判別して、時差計算して表示するとかしたいんだけど(せっかく多言語ブログなので)、そういったプラグインないかな?

Atahualpaの日付バグについては、こちらの記事も参照してみてください。