カテゴリの種類別にアーカイブページの出力方法を変える(その1)

MTQに「ブログ記事のカテゴリ一覧に関連しまして」という質問がありました。
この質問に答えます。
今日は、基本的な考え方をまとめます。

1.質問の概要

質問の概要は以下の通りです。

  • 店舗の情報を記事として保存
  • それぞれの店舗を、市町村と、有人・無人の2つの方法で分類する
  • 市町村ごとのアーカイブページでは、その市町村に属する店舗を、有人と無人で分けて一覧にして出力する
    例えば、A市のアーカイブページには、以下のような形で出力する
    A市
      有人
       A市の有人店舗1
        A市の有人店舗2
        ...
      無人
       A市の無人店舗1
        A市の無人店舗2
      ...
  • 有人・無人それぞれのアーカイブページでは、有人(無人)の店舗を、市町村で分けて一覧にして出力する
    例えば、有人のアーカイブページには、以下のような形で出力する
    有人
      A市
       A市の有人店舗1
        A市の有人店舗2
        ...
      B市
       B市の有人店舗1
        B市の有人店舗2
      ...

2.基本的な考え方

上記の事例の場合、以下のような手順で構築していきます。

2-1.カテゴリの構造

まず、カテゴリの構造を以下のようにします。

├ 市町村
│ ├ A市
│ ├ B市
│ ...(その他の市町村)
└ 有人・無人
  ├ 有人
  └ 無人

2-2.記事の入力

それぞれの記事では、市町村のカテゴリのどれか1つと、有人/無人のどちらかのカテゴリにチェックを入れます。

2-3.カテゴリアーカイブテンプレートの作成

カテゴリアーカイブテンプレートは、以下のような考え方で作ります。

・出力中のカテゴリが「市町村」カテゴリの配下にある場合

出力中のカテゴリが「市町村」カテゴリの配下にある場合(「A市」など)は、その市町村に属する記事(店舗)を、有人/無人に分けて出力します。
MTEntriesタグにcategoryモディファイアを指定して、読み込むカテゴリを特定します。

例えば、「A市の有人店舗」を出力するとします。
そのような店舗(記事)は、「A市」と「有人」の2つのカテゴリに属していますので、以下のMTEntriesタグで出力することができます。

<mt:Entries category="A市 AND 有人">
  ...
</mt:Entries>

・出力中のカテゴリが「有人・無人」カテゴリの配下にある場合

出力中のカテゴリが「有人・無人」カテゴリの配下にある場合(「有人」か「無人」)は、そのタイプに属する記事(店舗)を、市町村に分けて出力します。
これも、MTEntriesタグにcategoryモディファイアを指定して行います。