top

エントリーアーカイブに同じカテゴリの記事一覧を表示する(2) MTタグ編

先日ふと通りかかった掲示板を見ていて気がついたんですが、「エントリーアーカイブに同じカテゴリの記事一覧を表示する」のって、実はプラグインもSmartyも使わずにMTタグだけで出来ることだったんですね! ということで覚え書きです。

これには<MTEntryCategories>~</MTEntryCategories>タグを使います。このタグは通常そのエントリーが属するカテゴリー名を表示するのに使われていますが、その中に<MTEntries>~</MTEntries>を入れこんでしまえば、そのカテゴリー内での記事のみが表示されることになるのです。
なお、このタグ内ではそのエントリーの属するカテゴリーが全て出てきますので、複数カテゴリを指定していた場合は指定された全てのカテゴリーに属するエントリーが表示されます。ので、リストの最初にどのカテゴリーの記事なのか分かるようにカテゴリタイトルを入れてみました。

■エントリーの属するカテゴリーの記事を表示させる
そのエントリーの属するカテゴリーの記事のみが表示されます。例では最新10件を表示するようにしてます。lastn="10"の数字はお好みで。複数カテゴリを指定した記事がないブログなら「<$MTCategoryLabel$> の最新10件のエントリー」の部分はとってもかまわないでしょう。

<MTEntryCategories>
<$MTCategoryLabel$> の最新10件のエントリー
<ul>
<MTEntries lastn="10">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</MTEntryCategories>

■サブカテゴリー以下の記事も表示させる
そのエントリーの属するカテゴリの下にさらにサブカテゴリーがあり、サブカテゴリーの記事も一緒に表示させたい場合。

<MTEntryCategories>
<$MTCategoryLabel$> の最新10件のエントリー
<ul>
<MTEntriesWithSubCategories lastn="10">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntriesWithSubCategories>
</ul>
</MTEntryCategories>

<注意>ただし、3.35以下のバージョンではダイナミックで<MTEntriesWithSubCategories>にcategory="category_name"を指定しなければ上手く動かないバグがありますので、サブカテゴリー以下も表示させたい場合はSmarty編を参考にして下さい。なお、MT4ではこのバグは直っていますので上記のタグだけでサブカテゴリ以下も表示することができます。

Smarty編とこのMTタグ編の違いは、前者がメインカテゴリのみと複数カテゴリのどちらも選べるのに対して、こちらは常に複数カテゴリ対象になってしまうことです。その代わり、カテゴリ毎に分けて表示されるのでどのエントリーがどのカテゴリに所属しているのか分かりやすいです。目的に応じて使い分けるといいと思います。

参考:関連記事
エントリーアーカイブに同じカテゴリの記事一覧を表示する(1) Smarty編 (全バージョン対応)
エントリーアーカイブに同じカテゴリの記事一覧を表示する(3) 4.0MTタグ編 (4.0以降専用)

<2007.9.8 修正>
Smartyでも複数カテゴリに対応できることが分かったので一部記事を修正