///

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

wrote :

エントリーページに、そのエントリーが属するカテゴリ内の最新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>

川上 武範(かわかみ たけのり)
1975年生。シンプルシンプルデザイン代表兼Webクリエイター。たびのとWebサイト運営責任者。

企画からサイト設計、正しいマークアップを意識したWebサイト制作やユーザー視点の情報設計を得意としている。

シンプルシンプルデザイン
たびのと
twitter : たけたけ@OnlyTwo

メディア掲載
2016年10月25日 レバテックフリーランスの記事「自作Webサービス記事紹介まとめ」でサイト内の記事「Webサービス「たびのとTOKYO」を作ってみました」を紹介していただきました。