Amnesiac

仕事でちょっと詰まった箇所の健忘録。

MTでページネーション/ページャー/ページ送りに苦戦する

MT7(Movable Type7)でページネーション対応するためにPageButeを導入しました。

product.skyarc.co.jp

 

一覧ページでの表示はうまくいったんですが、記事ページで苦戦したのでメモを残します。

実現したいのはよくある左右で「次の記事リンク」「前の記事リンク」を表示させる下記の形。

問題になるのは先頭の記事ページと、最後のページです。

 

上の画像は最後の記事ページで、それより前の記事ページがない状態。

次のリンクの表示は<mt:EntryNext>、前のリンクの表示は<mt:EntryPrevious>を使います。

 

ここで、<$mt:SetVar>でフラグを作り、このフラグが成立したら「前の記事はありません」という表示をさせています。

 

コードは下記です。

 

<$mt:SetVar name="EntryNext" value="0" $>
<mt:EntryNext>
<li>
<a href="<$mt:EntryPermalink$>" class="bl_lineArrow_left">
<$mt:EntryTitle$></a>
</li>
<$mt:SetVar name="EntryNext" value="1" $>
</mt:EntryNext>
<mt:Unless name="EntryNext" value="0">
<li> 次の記事はありません </li>
</mt:Unless>
 
<$mt:SetVar name="EntryPrevious" value="0" $>
<mt:EntryPrevious>
<li>
<a href="<$mt:EntryPermalink$>" class="bl_lineArrow_right">
<$mt:EntryTitle$></a>
</li>
<$mt:SetVar name="EntryPrevious" value="1" $>
</mt:EntryPrevious>
<mt:Unless name="EntryPrevious" value="0">
<li> 前の記事はありません </li>
</mt:Unless>

 

MTはページャー関連が弱いので、このあたりを使って解決させています。