Movable Type(MT)の年月リスト:年を降順(新しい順)・月を昇順(古い順)をプラグイン無しで表示。
以下が流れになります。
・月別アーカイブの繰り返し
・最初の年のタイトルを表示、月の配列、カウンタを初期化
・年が同じの間、月の配列にセットし繰り返し
・年が違うとき、月の配列を逆順に表示、月の配列、カウンタを初期化、年のタイトルを表示
<MTArchiveList archive_type="Monthly">
<MTArchiveListHeader>
<MTSetVarBlock name="set_year"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<MTSetVarBlock name="set_year2"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<MTSetVar name="set_monthly" value="0">
<MTSetVar name="counter" value="0">
<ul>
<li><$MTGetVar name="set_year"$>年
<ul>
</MTArchiveListHeader>
<MTSetVarBlock name="set_year2"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<MTIf name="set_year" ne="$set_year2">
<MTSetVarBlock name="set_year"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<MTSetVarBlock name="set_year2"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<MTLoop name="set_monthly" sort_by="value numeric reverse">
<MTVar name="__value__">
</MTLoop>
<MTSetVar name="set_monthly" value="0">
<MTSetVar name="counter" value="0">
</ul>
</li>
<li><$MTGetVar name="set_year"$>年
<ul>
</MTIf>
<MTIf name="set_year" eq="$set_year2">
<MTSetVarBlock name="counter"><$MTGetVar name="__counter__"$></MTSetVarBlock>
<MTSetVarBlock name="set_monthly[$counter]"><li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%m月"$></a></li></MTSetVarBlock>
<MTSetVarBlock name="set_year2"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
</MTIf>
<MTArchiveListFooter>
<MTLoop name="set_monthly" sort_by="value numeric reverse">
<MTVar name="__value__">
</MTLoop>
</ul>
</li>
</ul>
</MTArchiveListFooter>
</MTArchiveList>
以下が実際の結果