以前から「個別エントリーアーカイブ」に「カテゴリー」を表示させいと思っていたのですが、再構築時間が長くなるので敬遠していました。
ですが、サイドバーを JavaScript で書き出す方法を解説しているページを発見し、早速やってみました。
参考にさせていただいたページは、
です。ありがとうございます。
## 設定方法
まず、新しいインデックス・テンプレートを作ります。
テンプレート名
カテゴリー
出力ファイル名
categories.js
テンプレートの内容
function Categories(){ var h = "<MTIfArchiveTypeEnabled archive_type='Category'>"; h += "<div class='module-categories module'>"; h += "<h2 class='module-header'>カテゴリー</h2>"; h += "<div class='module-content'>"; h += "<MTTopLevelCategories>"; h += "<MTSubCatIsFirst><ul class='module-list'></MTSubCatIsFirst>"; h += "<MTIfNonZero tag='MTCategoryCount'>"; h += "<li class='module-list-item'><a href='<$MTCategoryArchiveLink$>'><$MTCategoryDescription$></a> (<$MTCategoryCount$>)"; h += "<MTElse>"; h += "<li class='module-list-item'><$MTCategoryDescription$>"; h += "</MTElse>"; h += "</MTIfNonZero>"; h += "<MTSubCatsRecurse>"; h += "</li>"; h += "<MTSubCatIsLast></ul></MTSubCatIsLast>"; h += "</MTTopLevelCategories>"; h += "</div>"; h += "</div>"; h += "</MTIfArchiveTypeEnabled>"; return h; } document.write(Categories());
※あらかじめテキストエディタでソース中のダブルコーテーションをシングルコーテーションに置換しておくと簡単です。
再構築オプション
チェックを入れておく
次に、カテゴリーを表示させたいページの好きな所に、以下のソースを追加。
<script language="javascript" type="text/javascript" src="<$MTBlogURL$>categories.js"></script>
該当するテンプレートを再構築する
以上です。
試しに再構築時間してみましたが「カテゴリー」を追加する前と変化なし(体感値)。
調子に乗って「最近のエントリー」なんかも外部 JavaScript ファイルにしました。
この改造によって、心配なのは、
- 属性値をシングルコーテーションで書いているが問題ないのか?
- 検索エンジンはリンクとして認識してくれるのか?
と言った所です。
検索エンジン対策に関しては、個別エントリーアーカイブに元々存在しなかった「カテゴリー」リンクを追加しただけなので、問題ないのではないかと思います。
とりあえず「カテゴリ追加の度に再構築の刑」が無くなっただけでも良しとする。