Movable Typeでパンくずリストを作る方法です。当ブログでオーソドックなパンくずリストの作り方の記事がまだなかったので、本エントリーでまとめることにします。
1.カテゴリアーカイブページにパンくずリストを表示
カテゴリアーカイブページに次のようなパンくずリストを表示します。
スクリーンショットのように表示するには、カテゴリアーカイブページ用のテンプレート(「カテゴリ別ブログ記事リスト」テンプレートなど)に以下のサブテンプレートをはりつけます。
<div class="breadcrumb">
<a href="<$mt:BlogURL$>">TOP</a> »
<mt:ParentCategories glue=" » ">
<a href="<$mt:BlogURL$><$mt:CategoryArchiveLink$>/"><$mt:CategoryLabel$></a>
</mt:ParentCategories>
</div>
「TOP »」はサブテンプレートに直接記述しています。
カテゴリはMTParentCategoriesタグを使って、親カテゴリから現在のカテゴリまでを順番に表示します。カテゴリページへのリンクはMTCategoryArchiveLinkタグを利用します。
MTParentCategoriesタグにglueモディファイを利用すれば、カテゴリを並べて表示する際の区切り文字をいれてくれます。ここでは区切り文字に「»」の実体参照である「»」を設定しています。
現在のカテゴリにカテゴリページへのリンクを設定したくない場合は、MTParentCategoriesタグで処理しているカテゴリとそのページのカテゴリを比較して、等しい場合のみMTCategoryArchiveLinkタグを適用しないようにします。
<div class="breadcrumb">
<$mt:CategoryID setvar="cat_id"$>
<a href="<$mt:BlogURL$>">TOP</a> »
<mt:ParentCategories glue=" » ">
<$mt:CategoryID setvar="current_cat_id"$>
<mt:if name="current_cat_id" eq="$cat_id">
<$mt:CategoryLabel$>
<mt:else>
<a href="<$mt:BlogURL$><$mt:CategoryArchiveLink$>/">
<$mt:CategoryLabel$></a>
</mt:if>
</mt:ParentCategories>
</div>
これで末端のカテゴリにリンクが表示されなくなります。
2.ブログ記事ページにパンくずリストを表示
ブログ記事ページに次のようなパンくずリストを表示します。
スクリーンショットのように表示するには、ブログ記事ページ用のテンプレート(「ブログ記事」テンプレートなど)に以下のサブテンプレートをはりつけます。
<div class="breadcrumb">
<a href="<$mt:BlogURL$>">TOP</a> »
<mt:ParentCategories glue=" » ">
<a href="<$mt:BlogURL$><$mt:CategoryArchiveLink$>/"><$mt:CategoryLabel$></a>
</mt:ParentCategories>
<mt:if tag="EntryCategory"> » </mt:if><$mt:EntryTitle$>
</div>
構造は1項のサブテンプレートとほぼ同じです。異なるのはカテゴリを表示したあとに、ブログ記事を表示するようにしています(赤色部分)。
カテゴリに属さないブログ記事があることも考慮し、MTIfタグでMTEntryCategoryタグを判定し、カテゴリが設定されている場合のみ、ブログ記事タイトルの直前に「»」を表示するようにしています。
この制御を行うことで、カテゴリに属していないブログ記事のパンくずリストは次のように表示します。
3.ウェブページのパンくずリスト
ウェブページのパンくずリストについては「Movable Typeのパンくずリストでフォルダの代わりにウェブページを表示する」を参照してください。