MTで「同じサブカテゴリーの記事」
MovableType3.1のサブカテゴリー機能を使い、個別記事アーカイブページで「同じサブカテゴリー内の記事」を一覧表示させる方法を紹介します。カテゴリー別アーカイブページをリニューアルする課程で必要になったのです。
「同一カテゴリー内の記事」ならばプラグインで素直に可能なんですけど
と、いうことで、上記サイトの記事を参考にMTで「この記事のサブカテゴリー」で使った方法を流用して「同一サブカテゴリー内の記事」のみを表示する方法が下記(あ、書き忘れましたがプラグインは必要なので上のサイトから入手して下さい)。
「同一カテゴリー内の記事」ならばプラグインで素直に可能なんですけど
参考:小粋空間内「個別エントリーアーカイブに同一カテゴリーのエントリーを表示」これってつまり「同一メインカテゴリー内の記事or同一サブカテゴリー内の記事」で、つまるところ、「メインカテゴリの中に複数のサブカテゴリを配置する」というウチみたいな構造だと「同一メインカテゴリー内の記事」が全部表示されてしまうのです。
と、いうことで、上記サイトの記事を参考にMTで「この記事のサブカテゴリー」で使った方法を流用して「同一サブカテゴリー内の記事」のみを表示する方法が下記(あ、書き忘れましたがプラグインは必要なので上のサイトから入手して下さい)。
<ul>
<!--MTEntriesタグを利用する-->
<MTTagInvoke tag_name="MTEntries">
<!--利用するタグ(=MTEntries)にcategoryアトリビュートを付加-->
<MTTagAttribute name="category">
<!--以下categoryアトリビュートの中身(サブカテゴリラベル)を
抽出する処理-->
<!--記事が属するカテゴリーを一つずつ走査-->
<MTEntryCategories>
<!--現在走査しているカテゴリーに親カテゴリーが存在するか
「存在する」=「現在走査しているカテゴリーはサブカテゴリー-->
<MTHasParentCategory>
<!--現在走査しているカテゴリー(=サブカテゴリー)のラベルを表示
表示した内容がcategoryアトリビュートの中身になる-->
<$MTCategoryLabel$>
</MTHasParentCategory>
</MTEntryCategories>
</MTTagAttribute>
<!--利用するタグ(=MTEntries)にsort_orderアトリビュートを付加-->
<MTTagAttribute name="sort_order">ascend</MTTagAttribute>
<!--以下条件に合致する記事(同一サブカテゴリー内の記事)を表示-->
<MTTagContent>
<li>
<a href="<$MTEntryPermalink$>">
<$MTEntryTitle$> (<$MTEntryDate format="%Y/%B/%d %X"$>)
</a>
</li>
</MTTagContent>
</MTTagInvoke>
</ul>
と、いう、MT使ってない人にとっては全くもってどうでも良いであろう話でした。<!--MTEntriesタグを利用する-->
<MTTagInvoke tag_name="MTEntries">
<!--利用するタグ(=MTEntries)にcategoryアトリビュートを付加-->
<MTTagAttribute name="category">
<!--以下categoryアトリビュートの中身(サブカテゴリラベル)を
抽出する処理-->
<!--記事が属するカテゴリーを一つずつ走査-->
<MTEntryCategories>
<!--現在走査しているカテゴリーに親カテゴリーが存在するか
「存在する」=「現在走査しているカテゴリーはサブカテゴリー-->
<MTHasParentCategory>
<!--現在走査しているカテゴリー(=サブカテゴリー)のラベルを表示
表示した内容がcategoryアトリビュートの中身になる-->
<$MTCategoryLabel$>
</MTHasParentCategory>
</MTEntryCategories>
</MTTagAttribute>
<!--利用するタグ(=MTEntries)にsort_orderアトリビュートを付加-->
<MTTagAttribute name="sort_order">ascend</MTTagAttribute>
<!--以下条件に合致する記事(同一サブカテゴリー内の記事)を表示-->
<MTTagContent>
<li>
<a href="<$MTEntryPermalink$>">
<$MTEntryTitle$> (<$MTEntryDate format="%Y/%B/%d %X"$>)
</a>
</li>
</MTTagContent>
</MTTagInvoke>
</ul>

TrackBack
この記事へのトラックバック