Webデザイン > Movable Type > Tips > アーカイブページの性質とサイト全体で共通のナビゲーション

2006年04月15日

エントリーアーカイブでコメントとトラックバックを付けたついでに、 トップページやアーカイブページで共通のナビゲーションを実現しようとしたが、はまったので書くことにした。

サイト全体で共通のナビゲーションを実現するなら、 「<MTArchiveList>タグ」を使えば便利だよというお話。

使ってるバージョンは3.2。

アーカイブページの性質

Archiveの意味は保管庫・保管所である。
つまりMovable Typeにおけるアーカイブページというのは、 一つまたは複数の記事を保管してるページである。
エントリーアーカイブなら、エントリー単位で保管するので記事は一つである。 日付アーカイブやカテゴリアーカイブは、複数の記事を保管できる。

アーカイブページがテンプレートタグに与える影響

Movable Typeをさわり出して日が浅いので、深くは理解してないが、 主に<MTEntries>タグに与える影響が大きいようだ。

例えばエントリーアーカイブは記事単位で保管してるので、 当然記事は一つしかない。
<MTEntries>タグで複数の記事を探す必要がないので、 <MTEntries>タグを使わずとも<$MTEntryBody$>タグが使えたりする。

このブログを例にとると、「PHP」というカテゴリアーカイブには、 「PHP」というカテゴリに関連付けられた記事が保管されてる。 「PHP」というカテゴリのアーカイブページで<MTEntries>タグを 使うとアーカイブ内に参照されてる記事だけを<MTEntries>タグの対象にする。
同じように「4月」の日付アーカイブは「4月」に書かれた記事だけを対象にする。

このことから、各アーカイブページは<MTEntries>タグに大きく影響を与えてると言える。

アーカイブページでの問題点

アーカイブページによって<MTEntries>タグは大きく性質を変える訳だが、 これは便利でもあり不便でもある。

一つ例を出すと、カテゴリアーカイブページで、ブログ全体での最新の記事を表示するのに、

<ul>
<MTEntries  lastn="5">
   <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>

としてやると、当然ながらそのカテゴリの中の最新の記事が5つ表示され、 ブログ全体の最新記事を表示することができない。

ようするにアーカイブ内で全体の記事を表示する時に困るのである。

アーカイブページの性質にとらわれることなく、<MTEntries>タグを使うには?

先にあげたカテゴリアーカイブでブログ全体の最新の記事を表示するだけなら、 hxxk.jp - カテゴリアーカイブとナビゲーションリスト に書かれているように、<MTInclude>タグを使ったり、PHPなどのスクリプト言語でファイルをインクルードすることによって、 回避することはできる。

ただこれだと、<MTInclude>タグを使った時は新しい記事を書く度にサイト全体を再構築する必要があるし追記、 PHPでわざわざインクルードするのも気が引ける。

もう少しスマートに出来ないものかとMovable Typeのタグリファレンスと睨めっこして見つけたのが、

<MTArchiveList>タグ

このタグは全てのアーカイブを周る事が出来る。
オプションの「archive_type」でアーカイブタイプを指定してやることで、カテゴリアーカイブだけを周ったり、 日付アーカイブだけを周ったりできる。

先のカテゴリアーカイブでブログ全体の最新記事を表示するなら、

<ul>
  <MTArchiveList archive_type="Individual" lastn="5">
     <MTEntries>
     <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
     </MTEntries>
  </MTArchiveList>
</ul>

と指定すれば表示出来る。

カテゴリアーカイブに限らず、どのアーカイブページでも同じように使えるので、 サイト全体で共通のナビゲーションを実現する時等に役立つと思う。

追記:2006/05/05
タグの種類に限らずサイト全体で共通のナビゲーションを実現するなら、 サイト全体の再構築は必要になる。
参考:新規エントリー投稿時に再構築されるアーカイブ

posted by 37to at : 04:31 | コメント (0) | トラックバック (1)

コメント

この記事に対するコメントはまだありません。


投稿する

投稿者情報を保存しますか?


トラックバック

トラックバックURI


一覧

新規エントリー投稿時に再構築されるアーカイブ
新規エントリーを投稿した際に、自動的に再構築されるアーカイブがよく分からなか...
Tracked by: Blog.37to.net at 2006年05月05日 13:30