MTでカテゴリに見出しをつけ五十音順にソートする(覚書)

記事内に広告が含まれています。

都道府県カテゴリの下にサブカテゴリとして市区町村がある、というような場合、市区町村カテゴリの数が多いので、わかりやすく五十音順で整理したい、という場面があると思います。

埼玉県(親カテゴリ)
└上尾市
└さいたま市
└熊谷市
└川越市
└所沢市
└川口市

例えば「さいたま市」なら、「さ行」、熊谷、川越、川口市は「か行」とタグを付けておきます。
タグ付けには、カスタムフィールド(または空いているカテゴリの説明欄)を使用して、以下のように並べ替えたいとします。

あ行
└ 上尾市
か行
└ 川口市
└ 川越市
└ 熊谷市
さ行
└ さいたま市
た行
└ 所沢市

ちょっと試行錯誤して出来なかったので、以下のページを参考に、ハッシュを使って作りました。
http://www.koikikukan.com/archives/2011/09/05-015555.php
http://communities.movabletype.jp/2011/09/post-437.html

基本的には小粋空間さんのソースそのままでいけました。
toplevelcategoriesをsubcategoriesにしただけです(^^ゞ 
また、カスタムフィールドを使っています。

更に五十音順に並べ替える部分で、sort_by=”key” とすれば、あ行、か行、さ行…の順に並べることが出来ます。

<mt:SubCategories>
  <mt:if tag="CategoryInitial">
    <$mtCategoryInitial setvar="area"$>
    <mt:SetVarBlock name="list{$area}" append="1">
     <li><a href="<$mt:CategoryArchiveLink$>" title="<$mt:CategoryLabel$>"><$mt:CategoryLabel$></a></li>
    </mt:SetVarBlock>
  </mt:If>
</mt:SubCategories>
 
<mt:loop name="list" sort_by="key">
  <h3><mt:GetVar name="__key__"></h3>
  <ul><mt:GetVar name="__value__"></ul>
</mt:loop>

コメント