MTで月別リストをJS化する // MovableType

単純にMT内で月別リストを作るのは、
<MTIfArchiveTypeEnabled archivetype=”Monthly”>
<MTArchiveList archive
type=”Monthly”>
などを使って作ればいいだけの話で、初期状態でもサイドバー内などに設置されているので、どうと言うことはありません。

が、各カテゴリのページなどにも月別リストを入れたい場合、同じように入れると、そのカテゴリ内の月別リストになってしまい、全ての記事が反映されなくなってしまいます。同様に、月別アーカイブのページにカテゴリリストを入れる場合なども、そのアーカイブ内に含まれる記事のみしかリストに反映されないため、下の方法が有効です。

そこで、月別リストは、インデックステンプレートとして外部Javascript化して生成し、それを必要とする各ファイルでロードしてdocument.writeさせます。これなら簡単に全記事の反映された月別リスト/カテゴリリスト等が入れられます。
下のサンプルは月別リストをインデックステンプレートで作成した場合です。

インデックステンプレート==========
var htmllist = '<ul id="sidearchive">';
<MTIfArchiveTypeEnabled archive_type="Monthly">
<MTArchiveList archive_type="Monthly">
htmllist += '<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$>(<$MTArchiveCount$>)</a></li>';
</MTArchiveList>
</MTIfArchiveTypeEnabled>
htmllist += '</ul>';
document.write(htmllist);



Bookmark and Share


ブックマークに追加