Movabletypeで同一フォルダの前後ウェブページを取得する

現在のページの前後ページを表示する為に、mt:pageprevious / mt:pagenext タグを使う事があると思いますが、前後の基準が更新日時である為、
例えば、あるフォルダ内でそのフォルダに属しているページだけで前後ページ送りを実装したい、という場合、
別のフォルダに属しているページや、フォルダに属していないページが選択されてしまいます。

それでは困ってしまいますので、標準タグのみだけで実現してみました。

<ul>
<mt:pagefolder>
<mt:pages>
<$mt:getvar name="__counter__" setvar="counter"$>
</mt:pages>

<$mt:setvar name="prev" value="$counter"$>
<mt:setvarblock name="next"><$mt:getvar name="counter" value="2" op="-"$></mt:setvarblock>

<mt:unless tag="foldercount" eq="$counter">
<mt:pages lastn="1" offset="$prev">
<li class="previous <$mt:pagebasename$>"><a href="<$mt:pagepermalink$>"><$mt:pagetitle$></a></li>
</mt:pages>
</mt:unless>
<mt:unless name="next" lt="0">
<mt:pages lastn="1" offset="$next">
<li class="next <$mt:pagebasename$>"><a href="<$mt:pagepermalink$>"><$mt:pagetitle$></a></li>
</mt:pages>
</mt:unless>
</mt:pagefolder>
</ul>

ページがフォルダ内で何番目か判別し、最新のページから数えて前後の1ページのみをoffsetの値で取得する、という流れです。

地味にハマったのが、lastnを使う場合、強制的に最新(作成日時が新しい)順になる、という事。

備忘録代わりに久しぶりの更新でした。