プラグインを使わずにカテゴリ並び替え[regex_replace] (Movable Type5)

カテゴリ(フォルダ)を並び替えると言えば。
藤本 壱さんのSuperSort
CategoryLabelの頭N文字を削除するプラグインなんかが有名ですよね。

たまに制作現場で、「プラグインをインストールしてはいけない」とかいう
とんでも案件に出会ったりします。←出会ったりしました嫌な感じ

その経験を基にMT4.1以降だと動くはずな方法です。

古いMovable Typeから4.01以降に乗り換えた場合、
上記のプラグインなどでカテゴリの順番を並び替えていたりする人も
いるのではないでしょうか。

01_カテゴリ1
02_カテゴリ2
03_カテゴリ3
04_カテゴリ4
05_カテゴリ5

こんな感じに。

この方法だとMTはカテゴリ名の文頭の数値によって昇順に並びます。

しかし、このままだと不要なNN_が残ってしまっていかにも不細工です。
かといってプラグインは使えない状況(という話です。)

そこでこの方法

MT4.01以上のグローバル・モディファイア
regex_replaceを使って頭の数字部分をを置換してしまいます。

<mt:Ignore><!-- 正規表現を変数に格納 --></mt:Ignore>
<mt:Var name='re' value='/^[\d]{2}_(.+)/'>
<mt:TopLevelCategories>
<mt:SubCatsIsFirst><ul><mt:SubCatsIsFirst>
<mt:Ignore><!-- 正規表現でカテゴリ名の頭のxx_を置換 --></mt:Ignore>
<li>
<a href="<mt:CategoryArchiveLink />"><mt:CategoryLabel regex_replace='$re','$1' /></a>
</li>
<mt:SubCatsIsLast></ul></mt:SubCatsIsLast>
</mt:TopLevelCategories>

これだけでカテゴリリストからきれいさっぱり
頭の数字が取れます。

Trackbacks