SimpleIsm

MTのカテゴリ数を0で埋めて表示

Movable Type

<$MTArchiveCount$>とか<$MTCategoryCount$>などのテンプレートタグは、アーカイブとかカテゴリなどの記事件数を表示するタグ。その記事件数の桁数を指定して、その桁数に満たない場合は0を埋めて表示させる方法。グローバル・モディファイアのzero_padに該当する。タグの値を、全体で N 文字になるよう、余白を 0 で埋めます。

<MTArchiveList>
   <$MTArchiveCount sprintf="%02s"$>
</MTArchiveList>

sprintf="%02s"は2桁の意味。3桁はsprintf="%03s"。上記を記述すると、以下のようになる。

2010/05 (24)
2010/04 (07)
2010/03 (04)
2010/02 (15)
2010/01 (08)

余談

このグローバル・モディファイアを見つけるのにはかなり時間がかかった。というか自分のGoogle力では無理だった。閃けば一発だったけど。

まず最初に、日付表記で、2桁で表示するようにしたいので、format_name="format_name"とか試したのだけどもちろんダメで、検索したのが以下の単語。

他にもいろいろ探したけど、全部挙げると数十パターンになるので省略。とりあえず上記の単語でzero_padなるものを発見。エントリー関連タグ - MTテンプレートタグ辞典とかも見てみたけど、どうやら<$MTEntryID$>にしか使えないみたい。一応<$MTArchiveCount zero_pad="2"$>とかやってみたけどやっぱりダメだった。

ここで行き詰ってプラグインとかいろいろ探したけど全然見つからなくてしばらく(数か月)放置。で、もうPHP直接弄ろうと思って(というか直接弄ってできるかも全然分からなかったけど)「php 桁数指定」で検索したら、sprintfという関数がそれに該当するみたいで、「php sprintf」で記述の仕方を検索してたんだけど、もしやと思って「mt sprintf」で検索(ここが閃き)してみたら、sprintf | グローバル・モディファイアリファレンスを発見したという経緯。

とりあえずMTに関しては、「桁数」とか「0 補う or 0 埋める」と、「zero_pad」とか「sprintf」の関連付けが弱い気がする。特に自分のようなプログラミングにあまり携わらないような人間にとっては。こういうのってプログラマだとピーンと閃くのかな?「あぁ、これはsprintf使えばOKかな」みたいな。

とりあえず自分みたいな人に、すぐにこのページが見つかれば幸い。

2010/08/01(Sun) 03:05
<<前の記事
雑記その135
次の記事>>
雑記その136

Category

Archives