ページ分割してくれるMovable Typeプラグイン「PageBute」を導入しました

Movable Typeでは、なぜかデフォルトでは「次の10件」という表示が出ません。
かといって、1ページに大量のエントリーがずらーっと並んでるのもちょっと…。
というわけでプラグインを使ってページを分割してみました。
ダウンロード
こちらからプラグインをダウンロードして解凍。
バージョン3.5.6が最新だったので、それをダウンロードしました。
インストール
mtインストールディレクトリに「PageBute」をアップロード。
- /plugins
設定を変更
1ページあたりの表示件数が設定されていると、そちらが有効になってしまいます。
「設定」→「投稿」のページで表示される記事数を「0」や「999」に変更しておきます。

導入方法
区切りたい部分(MTEntriesなど)をMTPageContentsタグで囲みます。
何件で区切るかはcountで指定します。
出力されるリンクを相対パスにしたいので、属性「abs2rel="1"」を指定しています。
分割する位置はMTPageSeparatorタグを記述して指定。このタグの後に改行がないと一番古いエントリーが反映されなくなるらしいので注意。
MTIfPageFirst以下はリンクを出力するための指定です。
詳しいタグはこちらに載っています。
メインページのテンプレートを以下のように修正しました。
<MTPageContents count="10" abs2rel="1"> <mt:Entries> <$mt:Include module="ブログ記事の概要"$> <$MTPageSeparator$> </mt:Entries> </MTPageContents> <ul> <MTIfPageFirst><$MTPageFirst delim="|<"$></MTIfPageFirst> <MTIfPageBefore><$MTPageBefore delim="< prev"$></MTIfPageBefore> <$MTPageLists delim="" link_start="<li>" link_close="</li>" show_always="0"$> <MTIfPageNext><$MTPageNext delim="next >"$></MTIfPageNext> <MTIfPageLast><$MTPageLast delim=">|"$></MTIfPageLast> </ul>
ページ分割のリンクが表示されました!

でも、月別アーカイブ、カテゴリアーカイブに導入しようとしてつまづきました…。
問題発生
月別アーカイブ、カテゴリアーカイブにページ分割を導入しようとしたところ、出力されたリンクが変…。
このブログでは、ブログパスとアーカイブパスを別にしているため、リンクがうまく出力できなかったみたいです。
- ブログ:http://miauler.net/blog/
- アーカイブ:http://miauler.net/archives/
「index_x.html」のページは正常に作られていたので、かなり無理やりなのですが、月別アーカイブ、カテゴリアーカイブの場合のリンク出力部分を以下のようにしてみました。
対象ページへのリンクから番号を取り出し、「index_x.html」へのリンクを作成しています。
1ページ目のURLは「index_1.html」ではなく「index.html」なので、MTIfで分岐しています。
MTIfは使えないという意見も見かけたのですが、とりあえず動いてはいます。
<MTPagination> <MTSetVars> page_prev=<$MTPaginationPrev element="number"$> page_first=<$MTPaginationLink element="number"$> </MTSetVars> <ul> <MTIfPaginationFirst><li><a href="<$mt:ArchiveLink$>index.html" class="link_first">|<</a></li></MTIfPaginationFirst> <MTIfPaginationPrev><li><a href="<$mt:ArchiveLink$>index<mt:If name="page_prev" eq="1"><mt:Else>_<$MTPaginationPrev element="number"$></mt:If>.html" class="link_next">< prev</a></li></MTIfPaginationPrev> <li><MTIfPaginationCurrent><span class="current_page"><$MTPaginationLink element="number"$></span><MTElse><a href="<$mt:ArchiveLink$>index<mt:If name="page_first" eq="1"><mt:Else>_<$MTPaginationLink element="number"$></mt:If>.html" class="link_page"><$MTPaginationLink element="number"$></a></MTIfPaginationCurrent></li> <MTIfPaginationNext><li><a href="<$mt:ArchiveLink$>index_<$MTPaginationNext element="number"$>.html" class="link_next">next ></a></li></MTIfPaginationNext> <MTIfPaginationLast><li><a href="<$mt:ArchiveLink$>index_<$MTPaginationLast element="number"$>.html" class="link_last">>|</a></li></MTIfPaginationLast> </MTPagination> </ul>
とりあえずできました。
テンプレートモジュールを作って、それをメインページ、月別アーカイブ、カテゴリアーカイブで使っています。
月別アーカイブ、カテゴリアーカイブのリンクが絶対パスになっているので、そのうち相対パスに直したいです。
下のボタンを押すと拍手送信&メッセージフォームが開きます。→WEB拍手お返事
Comment