現在の記事の次の記事の内容を出力するMTのテンプレートタグ「MTEntryNext」

次の記事へのリンクを出力する時に使われることが多いと思います。

 

このMTEntryNext、一番新しい記事は、次の記事がないのでコードが出力されません。

一番新しい記事だけ、本来、次の記事へのリンクが出力される部分が空白になるので、代わりに一番古い記事へのリンクが出力されるよう、テンプレートタグを組んでみました。

一番古い記事へリンクする理由は、一番古い記事は、それより前の記事がないから、別の記事から「次の記事」という形でリンクをもらえないからです。

 

組んだコードはこちら。

<MTIf tag="entrynext">
<mt:EntryNext>
	<p><a href="<$mt:EntryBasename$>.html"><$MTEntryTitle$></a></p>
</mt:EntryNext>
<MTElse>
<mt:Entries limit="1" sort_by="created_on" sort_order="ascend">
	<p><a href="<$mt:EntryBasename$>.html"><$MTEntryTitle$></a></p>
</mt:Entries>
</MTIf>

MTIfタグで、MTEntryNextが有効かどうか判別します。

有効なら、MTEntryNextタグを使って次の記事のタイトルとリンクを出力。

無効なら、MTEntriesタグを使って一番古い記事を出力。

一番古いかどうかの指定は、sort_byモディファイアで記事作成日(created_on)を指定、そしてsort_orderモディファイアで昇順(ascend)にすることで日付の古い順にフィルタリングします。

そしてlimitモディファイアで値を1にすることで、一番古い記事だけを出力しています。

ここで、limitではなく、lastnモディファイアを指定してしまうと一番古い記事が出力できません。

参考URL

MTEntries : https://www.movabletype.jp/documentation/appendices/tags/entries.html

MTEntryNext : https://www.movabletype.jp/documentation/appendices/tags/entrynext.html