ウェブサイトでブログのカテゴリーを表示させる

MTQに以下のような質問があがっていました。

ホームであるウェブサイトに、その下にぶら下がっているブログのカテゴリーを表示させようと思っています。

この質問に答えてみます。

MTBlogsタグ

カテゴリに限らず、ウェブサイトのテンプレートの中で、配下のブログの情報を扱いたい場合は、その部分を以下のようなMTBlogsタグのブロックで囲みます。
「ブログのID」には、対象のブログのIDを指定します。

<mt:Blogs include_blogs="ブログのID">
  ブログの情報を出力するテンプレートタグ等
</mt:Blogs>

なお、ブログのIDを調べるには、Movable Type 5.1xでは以下の手順を取ります。

  • ウェブサイトの管理画面で「ブログ」→「一覧」のメニューを選びます。
  • ブログの一覧が表示されますので、ウィンドウの右上の方にある「表示オプション」をクリックします。
  • 表示オプションが開き、その中の「表示項目」に「ID」のチェックボックスがありますので、そのチェックをオンにします。

ちなみに、上記のテンプレートの書き方は、ウェブサイトでその配下のブログの情報を出力するときだけでなく、あるブログで別のブログの情報を出力するときにも使えます。

ウェブサイトにブログのカテゴリ一覧を表示する

ここまでの話から、ウェブサイトのページにブログのカテゴリ一覧を表示するには、ウェブサイトのテンプレートの中に以下のような部分を入れます。

<mt:Blogs include_blogs="ブログのID">
  <mt:TopLevelCategories>
    カテゴリの情報を出力するテンプレートタグ等
  </mt:TopLevelCategories>
</mt:Blogs>

例えば、ブログのIDが2番であるとします。
また、カテゴリ一覧をul/li要素で出力するとします。
この場合だと、ウェブサイトのテンプレートに以下のような部分を追加します。

<mt:Blogs include_blogs="2">
<mt:TopLevelCategories>
  <mt:SubCatIsFirst><ul></mt:SubCatIsFirst>
  <li>
  <mt:If tag="CategoryCount">
    <a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a>
  <mt:Else>
    <$mt:CategoryLabel$>
  </mt:If>
  <$mt:SubCatsRecurse$>
  </li>
  <mt:SubCatIsLast></ul></mt:SubCatIsLast>
</mt:TopLevelCategories>
</mt:Blogs>

おまけ

Movable Type 5.1 Webサイト製作ガイドVolume 2ウェブサイトとブログの間の連携については、拙著「Movable Type 5.1 Webサイト製作ガイドVolume 2」で詳細に解説しています。
ぜひこちらもお読みください。