MTでのパンくずリスト
MTネタ連発ですが、今回はMTでのパンくずリストを考えてみました。
カテゴリーアーカイブで表示するパンくずリストで、親カテゴリを含めてリストアップしてエントリーの無いカテゴリーに関してはカテゴリーアーカイブへのリンクは入れず、今表示しているカテゴリーのリンクも入れないと言うもの。
MTのソースコード
<div class="topicPath">
<mt:SetVarBlock name="this_category"><$mt:CategoryLabel$></mt:SetVarBlock>
<ul>
<li><a href="<$mt:BlogURL$>">Home</a></li>
<mt:ParentCategories>
<mt:SetVarBlock name="category_list"><$mt:CategoryLabel$></mt:SetVarBlock>
<mt:If name="category_list" ne="$this_category">
<mt:IfNonZero tag="CategoryCount">
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
<mt:Else>
<li><$mt:CategoryLabel$></li>
</mt:IfNonZero>
<mt:Else>
<li class="noImage"><em><$mt:CategoryLabel$></em></li>
</mt:If>
</mt:ParentCategories>
</ul>
</div>
- 2行目のSetVarBlockで現在のカテゴリーをthis_categoryに入れます
- 5行目のParentCategoriesで現在のカテゴリーから親カテゴリーまでをリストアップし、6行目のSetVarBlockでリストアップしたカテゴリーを全てcategory_listに入れます。
- 7行目のIfで現在表示中のカテゴリーと比較します。現在のカテゴリー以外でエントリー数がゼロでない場合は9行目が実行されます。
- 現在のカテゴリー以外でエントリー数がゼロだった場合は11行目が実行されます。
- 現在のカテゴリーだった場合は14行目が実行されます。
もっと簡単な書き方があるかもしれませんが参考までエントリーしておきます。
ついでにCSSコード
div.topicPath ul li {
margin-right: 7px;
padding-right: 14px;
float: left;
background: url(<$mt:StaticWebPath$>themes/theme_name/img/marker_topicpath.gif) no-repeat right center;
list-style: none;
display: inline;
}
ul li.noImage { background: none; }