同じカテゴリに属する前後のブログ記事へリンクするテンプレート[Movable Type]

Movable Typeで、個々のブログ記事から前後の記事へリンクするテンプレートを作成する場合は、MTEntryPrevious / MTEntryNextタグを使います。これらのタグの中では、MTタグは前後に公開された記事からデータを呼び出します。

<mt:EntryPrevious>
  <!-- 一つ前の記事 -->
</mt:EntryPrevious>
<mt:EntryNext>
  <!-- 一つ後の記事 -->
</mt:EntryNext>

ただし、初期値ではすべてのカテゴリをまたいで前後の記事を呼び出します。同じカテゴリの記事に限定するには、次のテンプレート例のように、by_categoryモディファイアに1を指定します。

<h2>前後の記事</h2>
<ul>
<mt:EntryPrevious by_category="1">
  <li>前の記事: <a href="<$mt:EntryLink$>"><$mt:EntryTitle$></a></li>
</mt:EntryPrevious>
<mt:EntryNext by_category="1">
  <li>次の記事: <a href="<$mt:EntryLink$>"><$mt:EntryTitle$></a></li>
</mt:EntryNext>
</ul>

さて、このby_categoryモディファイアは、タグリファレンスのMTEntryNextの項目によると、「Movable Type 6.0.2 で追加されました」とのことだけど……。

余談、もしくは愚痴

by_categoryモディファイアが追加される以前は、同じカテゴリに属する前後の記事へリンクするテンプレートを作成するには、複数のMTタグを組み合わせた煩雑な処理をするか、プラグインを使う必要がありました。

苦労してテンプレートを組んだMovable Typeユーザーも多いことでしょう。私もその一人です。

ところが!by_categoryモディファイアは、タグリファレンスに記載されていなかっただけで、以前のバージョンから追加されていたのです。これを知ったときは愕然としました。もっと早く知っていれば、無駄な労力を掛けずに済んだのに。

by_categoryモディファイアは、以前のバージョンではスタティックパブリッシングでしか動作しなかったため、隠し機能とされていたのでしょうか。それにしたって断り書き一つで済んだ話のはず。タグリファレンスに載せない理由になるとは思えません。(※ Movable Type 6.0.2からダイナミックパブリッシングでも動作します)

せっかく便利な機能を実装しておきながら、隠していたことに合点がいかないのでした。

タイトル:
同じカテゴリに属する前後のブログ記事へリンクするテンプレート[Movable Type]
カテゴリ:
ウェブ制作
公開日:
2014年02月05日
更新日:
2014年05月29日

この記事をシェア

あわせて読みたい