テンプレート内でカテゴリ一覧をID順に並び替える
MTのカテゴリ一覧を取得するタグ
これをID順(作成順?)に並び替えたいなぁと思ったのですが、プラグインを入れずにテンプレートタグのみで実装できました。
参考:http://www.mtde.info/0760samplecfld/samplecfld_010.php
<ul> <MTCategories> <MTSetvarBlock name="catid"><$MTCategoryID zero_pad="10"$></MTSetvarBlock> <MTSetvarBlock name="catlinkset"><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$>(<$MTCategoryCount$>)</a></MTSetvarBlock> <MTSethashVar name="catlist"> <MTSetVar name="$catid" value="$catlinkset"> </MTSethashVar> </MTCategories> <MTLoop name="catlist" sort_by="key"> <li><MTGetvar name="__value__"></li> </MTLoop> </ul>
3.カテゴリリストのコードを書き換える
以下のように書いたコードで生成するリストは、カスタムフィールドにて与えたインデックスどおりの並び順となります。
catid変数へ与えられる値が、カスタムフィールドにて与えたゼロ埋めのインデックスです。MTLoopではsort_by="key"モデファイアでは数値順ではなく文字列順に並べ替えがされますのでゼロ埋めは必須です。
catlinkset変数へは、カテゴリのリンク、名前などをhtmlタグなどとあわせて一式(セット)で与えています。これをハッシュの値とします。
http://www.mtde.info/0760samplecfld/samplecfld_010.php
参考にしたサイトでは、 これからはじめる MovableTypeの本
テンプレートタグも工夫することで、いろいろ便利なんだなぁ、と実感。