制作記事 Web制作アプリケーションMovableTypeカテゴリごとのエントリ一覧

カテゴリごとのエントリ一覧

エントリーページに、そのエントリーが属するカテゴリ内の最新10件を表示しようとした場合を考えます。

特定カテゴリのエントリ一覧

<MTEntries lastn=”10″ category=”カテゴリ名”>
<MTEntriesHeader><ul></MTEntriesHeader>
<li><mt:entrytitle></li>
<MTEntriesFooter></ul></MTEntriesFooter>
</MTEntries>

エントリーアーカイブに、このように記述することで、特定カテゴリの最新10件エントリを表示することができます。

カテゴリごとのエントリ一覧

次に、「特定カテゴリ」を「カテゴリごと」に置き換えるために、カテゴリごとに表示を切り替えるようにします。

<mt:categorylabel setvar=”カテゴリ名”>
<MTIf name=”カテゴリ名” eq=”カテゴリ1“>
<MTEntries lastn=”10″ category=”カテゴリ1“>
<MTEntriesHeader><ul></MTEntriesHeader>
<li><mt:entrytitle></li>
<MTEntriesFooter></ul></MTEntriesFooter>
</MTEntries>
</MTIf>
<MTIf name=”カテゴリ名” eq=”カテゴリ2“>
<MTEntries lastn=”10″ category=”カテゴリ2“>
<MTEntriesHeader><ul></MTEntriesHeader>
<li><mt:entrytitle></li>
<MTEntriesFooter></ul></MTEntriesFooter>
</MTEntries>
</MTIf>

「カテゴリ名」という変数を定義し、その値にブログを書くときに選択したカテゴリ名を設定します。
カテゴリ名が「カテゴリ1」のときは「カテゴリ1」内の最新10件を・・・、「カテゴリ2」のときは「カテゴリ2」内の最新10件を・・・、と分岐処理をすることで、カテゴリごとに表示を切り替えることが可能となります。

最適化

共通処理をする箇所に関しては、モジュール化しておきます。ここでは、「カテゴリ別一覧」というモジュールを作っておきます。

<MTEntries lastn=”10″ category=”カテゴリ2“>
<MTEntriesHeader><ul></MTEntriesHeader>
<li><mt:entrytitle></li>
<MTEntriesFooter></ul></MTEntriesFooter>
</MTEntries>

最終エントリーアーカイブは下記のようになります。

<mt:categorylabel setvar=”カテゴリ名”>
<MTIf name=”カテゴリ名” eq=”カテゴリ1“>
<MTEntries lastn=”10″ category=”カテゴリ1“>
<MTInclude module=”カテゴリ別一覧”>

</MTEntries>
</MTIf>
<MTIf name=”カテゴリ名” eq=”カテゴリ2“>
<MTEntries lastn=”10″ category=”カテゴリ2“>
<MTInclude module=”カテゴリ別一覧”>
</MTEntries>
</MTIf>