MTEntryPreviousとMTEntryNextで同じカテゴリ内の前後の記事を出力する

MovableTypeのバージョンが、6.0.2以降ならプラグインを使わなくても、同一カテゴリ内の前の記事、次の記事を出力することが可能です。

使うテンプレートタグはこの2つ。

デフォルトだと投稿日を基準に、MTEntryPreviousは前の記事、MTEntryNextは次の記事を出力します。

この2つのテンプレートタグに対して、下記のいずれかのモディファイアを追加すると、メインカテゴリ、または投稿者を基準に、前の記事・次の記事を出力することができます。

  • by_category・・・現在の記事が属するメインカテゴリ内の記事を呼び出す
  • by_author・・・現在の記事と同じ投稿者の記事を呼び出す

 

下記のように記述する事で、現在の記事が属するメインカテゴリ内の前の記事が出力されます。

	
<mt:EntryPrevious by_category="1">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
</mt:EntryPrevious>
	

 

下記のように記述する事で、現在の記事が属するメインカテゴリ内の次の記事が出力されます。

	
<mt:EntryNext by_category="1">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
</mt:EntryNext>
	

 

上記のby_categoryをby_authorに変えると、同じ投稿者の前の記事・次の記事を出力することができます。by_authorは複数のライターでMTを運用する場合に使いそうですね。

 
 

MTEntryPreviousも、MTEntryNextも、ネスト(入れ子構造)にして記述することが可能です。

下記のように記述すると、現在の記事が属するメインカテゴリ内の前の記事と、さらにその前の記事が出力されます。

	
<mt:EntryPrevious by_category="1">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
	<mt:EntryPrevious by_category="1">
		<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
	</mt:EntryPrevious>
</mt:EntryPrevious>
	

 

下記のように記述すると、現在の記事が属するメインカテゴリ内の次の記事と、さらにその次の記事が出力されます。

	
<mt:EntryNext by_category="1">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
	<mt:EntryNext by_category="1">
		<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
	</mt:EntryNext>
</mt:EntryNext>
	

 

ネストできる階層がどれくらいになるかまでは検証してませんが、5階層くらいは問題ないような気もします。

 

4年くらい前にMTでプラグインを使って、同じカテゴリに属する前後の記事を出力する方法を書いたんですよね。

MTで同じカテゴリーで投稿した記事の前後4つずつの記事リストを出力する

これもプラグインに対応した独自のテンプレートタグをネストする形でコードを組みました。

最新バージョンのMovableTypeを使えば、プラグイン不要で、同一カテゴリ内の前の記事・次の記事を出力できるということになりますね。