某プラグインを使わずに月別リストを(略)
そういえば完全に書き忘れているような気がするので今のうちに書いてしまいますが,現在ここで使っているテンプレートは,ページ分割プラグイン用にテンプレートをちょこっと追加しているのみで,基本的にはVicunaを使っています.って,そんなことは見れば分かるんでしょうけど(^^;
で,MT3.x時代に使っていたプラグインのうち,4.1にして以降全く使う事の無い(というか対応していない)プラグインもいくつか存在しているわけです.その中の代表的なものが,月別・年別リストの構築用に使っていたArchiveDateHeader,ArchiveLoad,ArchiveYearの3つのプラグインです.まぁ未対応なのでしょうがないんですけど(^^;
ところが,月別のリンクリストを年毎に並べて表示するってのは結構あちこちで使われていて,事実うちでも(4.1なのに)ちゃんと使っているんですが,うちのテンプレートにはArchiveDateHeaderプラグインなんて入れていないわけで「どうやってやっているの?」と疑問に思う人もいると思います.そういえばVicunaにして以降,この辺のことについては書いていなかったような気がするので,この際ですから月別リスト表示部分のテンプレートを公開してしまいます.
<dl class="mlist"> <MTArchiveList archive_type="Yearly"> <MTSetVarBlock name="year"><$MTArchiveDate format="%Y" language="en"$></MTSetVarBlock> <dt><a href="<$MTBlogURL$><$MTArchiveDate format="%Y" language="en"$>/"><$MTArchiveDate format="%Y" language="en"$>年</a> (<$MTArchiveCount$>)</dt> <MTArchiveList archive_type="Monthly" sort_order="ascend"> <MTSetVarBlock name="year2"><$MTArchiveDate format="%Y" language="en"$></MTSetVarBlock> <MTArchiveListHeader><dd><ul></MTArchiveListHeader> <MTIf name="year2" eq="$year"> <li><a href="<$MTArchiveLink$>" title="<$MTArchiveDate format="%Y年%B月"$>(<$MTArchiveCount$>)"><$MTArchiveDate format="%B"$>月</a></li> </MTIf> <MTArchiveListFooter></ul></dd></MTArchiveListFooter> </MTArchiveList> </MTArchiveList> </dl>
一応解説しておくと,4.1以降ArchiveListのarchive_typeモディファイアにYearly(年別)が使えるようになったので,Yearlyで各年を取得すると同時に変数yearに格納し,そのうえで年部分のリンクを作成(<dt>~</dt>
).その後モディファイアをMonthlyにして,うち年の部分だけを別の変数year2に入れ,yearとyear2を比較し一致する部分の月部分をリンクリストとして取り出す(<dd><ul>~</ul></dd>
)...ということをやっています.
実を言うと,年別アーカイブもやろうと思えば月ごとに分けてリスト化出来ちゃったりするんですが,再構築にえらい時間がかかるみたいなので今は取りやめています.まぁそっちも機会があれば晒してみようかなんて思ってはいますが,それはまた機会があればということで(^^;
Comments:0