ブログサイドバーのカテゴリ一覧を子カテゴリに対応させてみる。
ブログのエントリーは今までは親カテゴリのみの一階層にて管理をしてきました。それを試しに子カテゴリを作成してみての二階層にして運営してみることにした。いまこのMovable Typeブログのテンプレは先日からモジュール、ウィジェット化を少しづつしてて、カテゴリ一覧はウィジェットでこんな感じのコードにしていた。
<mt:IfArchiveTypeEnabled archive_type="Category"><dt>Category</dt>
<dd id="categories">
<ul><mt:Categories>
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel encode_html="1"$>(<$mt:CategoryCount$>)</a></li></mt:Categories>
</ul>
</dd></mt:IfArchiveTypeEnabled>
こんな感じのテンプレを書いてました。ちょっと見通しが悪いかな?
<mt:IfArchiveTypeEnabled archive_type="Category">
<dt>Category</dt>
<dd id="categories">
<ul>
<mt:Categories>
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel encode_html="1"$>(<$mt:CategoryCount$>)</a></li>
</mt:Categories>
</ul>
</dd>
</mt:IfArchiveTypeEnabled>
普通はこっち↑みたく書くかな?以前はこういう書き方をしていたんだけどテンプレは見やすいんだけど、出力されたHTMLのソースを見ると空白行がバリバリできちゃってる。自分でHTMLソースを見たときに読みにくかったので、ある程度キレイにHTML出力されるように1番目のようにテンプレに書いてました。
カテゴリタグ周りでいろいろとつまづく。。。
カテゴリウィジェットを子カテゴリ対応に変更するぜぃということで、Six ApartのMTタグリファレンスのcategory タグを含む MTタグへレッツゴー。最初は単純に MTCategories の内側に MTSubCategories を書いてやればいいんでない?と思ってやってみたけど、子カテゴリも一階層目に表示されイマイチ思ったとおりの結果にならず・・・。
よくMTCategoriesの説明のところをみると「メインカテゴリもサブカテゴリも区別せずに表示します」とあった・・・。いろいろと試してたら MTCategories 直下にて MTHasNoParentCategory を回してやってそれから MTSubCategories を使うと取りあえず期待通りに動作した。
<mt:Ignore>2008-05-18</mt:Ignore><mt:IfArchiveTypeEnabled archive_type="Category"><dt>Category</dt>
<dd id="categories">
<ul><mt:Categories show_empty="1"><mt:HasNoParentCategory>
<li><mt:IfNonZero tag="CategoryCount"><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel encode_html="1"$>(<$mt:CategoryCount$>)</a><mt:Else><$mt:CategoryLabel encode_html="1"$>(<$mt:CategoryCount$>)</mt:IfNonZero><mt:SubCategories><mt:SubCatIsFirst>
<ul></mt:SubCatIsFirst>
<li><mt:IfNonZero tag="CategoryCount"><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel encode_html="1"$>(<$mt:CategoryCount$>)</a><mt:Else><$mt:CategoryLabel encode_html="1"$>(<$mt:CategoryCount$>)</mt:IfNonZero></li><mt:SubCatIsLast>
</ul></mt:SubCatIsLast></mt:SubCategories></li></mt:HasNoParentCategory></mt:Categories>
</ul>
</dd></mt:IfArchiveTypeEnabled>
といろいろと試行錯誤をして出来た新しい、カテゴリーウィジェットはこんな感じになった。各テンプレのバージョン管理のために頭に Ignoreタグにて日付を入れるようにした。結構間違えて古いテンプレを新しいのに上書きすることが多々あったのでこれで間違え減るといいなぁ。
しかし、MTのタグって改めてみると凄い数があるんですねー。とてもじゃないけど覚え切れないや。いつもテンプレを触るときはSix Apartサイト上のタグリファレンスが手放せません。

Movable Type プロフェッショナル・スタイル MT4.1対応
やっぱこの本のようなMTのカスタマイズ本は手元においておいたほうが良いんですかねー。どちらかと言うと自分はリファレンス派なのでSix Apartのタグリファレンスがもう少し分かりやすくなってくれるとありがたいんですけどね。

コメント
コメントの受付は停止中です。