静的ページ用ページ分割プラグイン:PageBute
2023.04.20 PageButeを更新しました。
PageBute の詳細は以下のページをご確認ください。
https://mtp.skyarc.co.jp/free-plugin/pagebute.html
2018.6.22 PageButeを更新しました。
- Pagebute3.5.8のMT7動作確認を行いました。
従来のテンプレートの他、コンテンツタイプテンプレートでも利用可能です。 - 公開キューを設定したテンプレート内でPageButeの機能が使われている場合に、定期タスクの実行時に大量のワーニングが発生する現象を改善しました。
2013.10.23 PageButeを更新しました。
ページ分割プラグインPageBute3.5.7を公開しました。
こんにちは。
PageButeプラグインは、Movable Typeで生成するhtmlをページ分割してくれるプラグインです。静的ページを生成しますのでPHP処理なども考えなくてもよいので、かなり便利なプラグインです。
※なお、検索テンプレートでは使用することが出来ません。ご注意ください。
プラグインのダウンロード
- バージョン3.5.8(MT4未検証/MT5/MT6/MT7) ダウンロード
- バージョン3.5.7(MT4未検証/MT5/MT6) ダウンロード
- バージョン3.5.6(MT4未検証/MT5) ダウンロード
- バージョン3.5.0(MT4未検証/MT5) ダウンロード
- バージョン3.4.4(MT4/MT5対応) ダウンロード
- バージョン3.4.2(MT5専用) ダウンロード
- バージョン3.4.0 ダウンロード
プラグインのインストール
インストール方法:解凍後、「PageBute」フォルダが生成されますので、生成されたフォルダごとMovable Typeの「plugins」ディレクトリにアップロードします。
プラグインの利用方法
エントリー数が多い場合、自動的にナビゲーションを追加してページを分割してくれます。
- <MTPageContents>~</MTPageContents>
-
区切りたい部分(Entriesなど)を囲むタグです。
このタグに囲まれた部分は、countで指定した件数ごとに区切られて表示されます。- count="*"
-
MTPageContentsのアトリビュートです。*部分に任意の数字を入れることで、区切る単位を指定します。
指定しない場合は、10件で区切られます。 - navi_count="11" 3.xxにて実装
-
MTPageListsで出力されるページリンク数を変更する為のアトリビュートになります。
指定しなかった場合は11が初期値となります。 - abs2rel="1" (3.5.5-)
- MTPageContentsの属性として指定します。 PageButeが出力するリンクをすべて相対にします。
- <$MTPageSeparator$>
- MTPageContents内に記述します。分割する位置を指定します。
- <$MTPageLists$>
-
各ページへのリンクを指定します。
- delim="*"
- MTPageListsのアトリビュートです。ページ番号とページ番号の間の区切りの指定が可能です。指定しない場合は が入ります。
- link_start="<li>"
- 各ページへのリンクや現在のページ番号を表示する前に指定された文字列を挿入します。通常はlink_closeと併せて利用します。指定されなかった場合には何の文字も挿入されません。MT4.x でのみ動作確認済み
- link_close="</li>"
- 各ページへのリンクや現在のページ番号を表示する前に指定された文字列を挿入します。通常はlink_startと併せて利用します。指定されなかった場合には何の文字も挿入されません。MT4.x でのみ動作確認済み
- show_always="0"
- 0 を指定すると、分割されたページが 1 つにしかならなかった場合、ページリストの 1 を表示しません。デフォルト設定は従来と同じ動作のため 1 が指定されたものとします。
- <MTIfPageFirst>~</MTIfPageFirst>
- 2ページ以降の場合、1ページへ戻るためのリンクが出力されます。
- <MTIfPageBefore>~</MTIfPageBefore>
- 前のページが存在する時に、本タグ内に書かれた内容が出力されます。
- <MTIfPageNext>~</MTIfPageNext> (-3.5.6) Update!
- 次のページが存在する時に、本タグ内に書かれた内容が出力されます。
- <MTIfPageAfter>~</MTIfPageAfter> (3.5.7-) New!
- 次のページが存在する時に、本タグ内に書かれた内容が出力されます。(3.5.7以降、MTIfPageNextと差し替わります)
- <MTIfPageLast>~</MTIfPageLast>
- 2ページ以上ある場合、最後のへ戻るためのリンクが出力されます。
- <$MTPageFirst$>
- 最初のページへのリンクを出力します。
- <$MTPageBefore$>
-
前のページへのリンクを出力します。
- delim="*"
- 前のリンクへの表示部分を指定可能です。指定しない場合は << が入ります。
- <$MTPageNext$> (-3.5.6) Update!
-
次のページへのリンクを出力します。
- delim="*"
- 次のリンクへの表示部分を指定可能です。指定しない場合は >> が入ります。
- <$MTPageAfter$> (3.5.7-) New!
-
次のページへのリンクを出力します。(3.5.7以降、MTPageNextと差し替わります)
- delim="*"
- 次のリンクへの表示部分を指定可能です。指定しない場合は >> が入ります。
- <$MTPageLast$>
- 最後のページへのリンクを出力します。
- <$MTPageCount$> (3.4.0-)
- 現在のページ番号(1以上)を出力します。
- <$MTPageMaxCount$> (3.4.0-)
- 最大のページ番号(1以上)を出力します。
- <MTPageContentsHeader>〜</MTPageContentsHeader> (3.5.0-)
-
ページ分割後の各ページ内で最初のコンテンツの場合に有効になるブロックです。
※MTPageSeparatorより前に記述してください。また、MTPageContents内のMTEntries等のブロック内に指定してください。 - <MTPageContentsFooter>〜</MTPageContentsFooter> (3.5.0-)
-
ページ分割後の各ページ内で最後のコンテンツの場合に有効になるブロックです。
※MTPageSeparatorより前に記述してください。また、MTPageContents内のMTEntries等のブロック内に指定してください。 - <MTPageEmpty>〜</MTPageEmpty> (3.5.0-)
- MTPageContents内の記事、コメントなどが一件も無い場合、MTPageEmptyで指定された内容をMTPageContentsの場所で表示します。
- <MTIfPageNoEmpty>〜</MTIfPageNoEmpty> (3.5.0-)
- MTPageContents 内の記事、コメントが一件でもある場合に有効になるブロックです。逆に一件も無い場合はブロック内は表示されません。MTPageContentsや MTPageEmptyの外で利用してください。また、この条件タグは複数指定できますが、入れ子指定は出来ません。
- <MTPagination>〜</MTPagination> (3.5.4-)
-
従来のナビゲーションリンクを出力していたMTPageListsの代わりに使用する事で、ナビゲーションにテンプレートを割り当て、自由に編集できるようにします。
従来では、ある程度固定的な出力となっていたナビゲーションリンクを、テンプレートを割り当てる事で、構造や出力を自由に指定し易く行えるブロックタグです。 - <MTPaginationHeader>〜</MTPaginationHeader> (3.5.4-)
- MTPaginationで有効なブロックタグです。 MTPaginationのヘッダーとして利用できます。
- <MTPaginationFooter>〜</MTPaginationFooter> (3.5.4-)
- MTPaginationで有効なブロックタグです。 MTPaginationのフッターとして利用できます。
- <MTIfPaginationCurrent>〜</MTIfPaginationCurrent> (3.5.4-)
- MTPaginationで有効なブロックタグです。 現在のページを判定します。
- <MTIfPaginationFirst>〜</MTIfPaginationFirst> (3.5.4-)
- MTPaginationで有効なブロックタグです。 カレントページ番号が最初のページ以外のときに有効となります(ただし最初のループのみ有効)
- <MTIfPaginationLast>〜</MTIfPaginationLast> (3.5.4-)
- MTPaginationで有効なブロックタグです。 カレントページ番号が最後のページ以外のときに有効となります(ただし最後のループのみ有効)
- <MTIfPaginationNext>〜</MTIfPaginationNext> (3.5.4-)
- MTPaginationで有効なブロックタグです。 カレントページ番号の次のページが存在する場合有効となります(ただし最後のループのみ有効)
- <MTIfPaginationPrev>〜</MTIfPaginationPrev> (3.5.4-)
- MTPaginationで有効なブロックタグです。 カレントページ番号の前のページが存在する場合有効となります(ただし最初のループのみ有効)
- <$MTPaginationLink$> (3.5.4-)
-
MTPaginationで有効なファンクションタグです。 プロトコルからページのファイル名までのURLを出力します。
- element="number"
- 対象ページへのリンクから番号のみを取り出します。
- element="base"
- 対象のページへのリンクからファイル名までを取り出します。
- element="suffix"
- 対象のページへのリンクから拡張子のみを取り出します。
- <$MTPaginationFirst$> (3.5.4-)
-
MTPaginationで有効なファンクションタグです。 最初のページへのURLを出力します。
- element="number"
- 対象ページへのリンクから番号のみを取り出します。
- element="base"
- 対象のページへのリンクからファイル名までを取り出します。
- element="suffix"
- 対象のページへのリンクから拡張子のみを取り出します。
- <$MTPaginationLast$> (3.5.4-)
-
MTPaginationで有効なファンクションタグです。 最後のページへのURLを出力します。
- element="number"
- 対象ページへのリンクから番号を取り出します。
- element="base"
- 対象のページへのリンクからファイル名までを取り出します。
- element="suffix"
- 対象のページへのリンクから拡張子のみを取り出します。
- <$MTPaginationNext$> (3.5.4-)
-
MTPaginationで有効なファンクションタグです。 次のページへのURLを出力します。
- element="number"
- 対象ページへのリンクから番号のみを取り出します。
- element="base"
- 対象のページへのリンクからファイル名までを取り出します。
- element="suffix"
- 対象のページへのリンクから拡張子のみを取り出します。
- <$MTPaginationPrev$> (3.5.4-)
-
MTPaginationで有効なファンクションタグです。 前のページへのURLを出力します。
- element="number"
- 対象ページへのリンクから番号のみを取り出します。
- element="base"
- 対象のページへのリンクからファイル名までを取り出します。
- element="suffix"
- 対象のページへのリンクから拡張子のみを取り出します。
サンプル
例1. 以下は、エントリーの一覧を5件ごとに区切った例です。
(※3.5.7以降のバージョンでは、こちらになります。)
<MTPageContents count="5">
<MTEntries>
<MTEntriesHeader><dl></MTEntriesHeader>
<dt><$MTEntryTitle$></dt>
<dd><$MTEntryExcerpt$></dd>
<$MTPageSeparator$>
<MTEntriesFooter></dl></MTEntriesFooter>
</MTEntries>
</MTPageContents>
<MTIfPageBefore>
<span><$MTPageBefore delim="前の5件"$></span>
</MTIfPageBefore>
<$MTPageLists$>
<MTIfPageAfter>
<span><$MTPageAfter delim="次の5件"$></span>
</MTIfPageAfter>
例2. 以下は、エントリーの一覧を5件ごとに区切った例です。
(※3.5.6までのバージョンで動作します。)
<MTPageContents count="5">
<MTEntries>
<MTEntriesHeader><dl></MTEntriesHeader>
<dt><$MTEntryTitle$></dt>
<dd><$MTEntryExcerpt$></dd>
<$MTPageSeparator$>
<MTEntriesFooter></dl></MTEntriesFooter>
</MTEntries>
</MTPageContents>
<MTIfPageBefore>
<span><$MTPageBefore delim="前の5件"$></span>
</MTIfPageBefore>
<$MTPageLists$>
<MTIfPageNext>
<span><$MTPageNext delim="次の5件"$></span>
</MTIfPageNext>
例3. 以下は、PageBute3.5.0の場合でエントリーの一覧を5件ごとに区切った例です。
(※3.5.0以下のバージョンでは動作しません。)
<MTPageContents count="5">
<MTEntries lastn="999">
<MTPageContentsHeader><dl></MTPageContentsHeader>
<dt><$MTEntryTitle$></dt>
<dd><$MTEntryExcerpt$></dd>
<MTPageContentsFooter></dl></MTPageContentsFooter>
<$MTPageSeparator$>
</MTEntries>
</MTPageContents>
<MTPageEmpty><p>記事は未登録です</p></MTPageEmpty>
<div class="pagenate">
<ul>
<MTIfPageBefore>
<$MTPageBefore delim="前の5件"$>
</MTIfPageBefore>
<$MTPageLists link_start="<li>" link_close="</li>"$>
<MTIfPageNext>
<$MTPageNext delim="次の5件"$>
</MTIfPageNext>
</ul>
</div>
このサンプルを「ブログ記事」テンプレートに貼り付け、出力した結果は以下のようになります。
もし、同じテンプレートに貼り付けて、1件も該当記事が存在しなかった場合は、
以下のようになります。
(上記サンプルの「<MTPageEmpty>〜</MTPageEmpty>」で出力)
例3. 以下は、PageBute3.5.3以降の場合でアーカイブページに対し、MTPaginationを使ってエントリーの一覧を5件ごとに区切るナビゲーションを表示する例です。
キャプチャ画像は、ブログ記事アーカイブページテンプレートに対し、MTPageLinksタグで書かれたナビゲーションリンクをMTPaginationタグを使った以下のサンプルと置き換えたものです。
(※3.5.3以下のバージョンでは動作しません。)
<MTPagination>
<MTPaginationHeader>
<div class="pagenate"><ul>
<MTIfPaginationFirst><li><a class="link_before" href="<$MTPaginationFirst$>"><<</a></li></MTIfPaginationFirst>
<MTIfPaginationPrev><li><a class="link_before" href="<$MTPaginationPrev$>">前の5件</a></li>< /MTIfPaginationPrev>
</MTPaginationHeader>
<MTIfPaginationCurrent>
<mt:ignore>現在のページ</mt:ignore>
<li><span><MTPaginationLink element="number"></span></li>
<MTElse>
<mt:ignore>それ以外(遷移用のリンクあり)</mt:ignore>
<li><a href="<$MTPaginationLink$>"><$MTPaginationLink element="number"$></a></li>
</MTIfPaginationCurrent>
<MTPaginationFooter>
<MTIfPaginationNext><li><a class="link_next" href="<$MTPaginationNext$>">次の5件</a></li>< /MTIfPaginationNext>
<MTIfPaginationLast><li><a class="link_next" href="<$MTPaginationLast$>">>></a></li></MTIfPaginationLast>
</ul></div>
</MTPaginationFooter>
</MTPagination>
例4. 以下は、例3のMTPaginationを使ってエントリーの一覧を5件ごとに区切るナビゲーションを表示する例と、前述のPageContentsを組 み合わせた例です。更に、現在表示中の記事が属しているカテゴリの記事だけを取得し、他にも同じカテゴリに所属する記事があるときだけ、文言を追加してい ます(<MTIfPageNoEmpty>〜</MTIfPageNoEmpty>の内容)。
(※3.5.3以下のバージョンでは動作しません。)
<MTIfPageNoEmpty>
<p>同じカテゴリに属する(<$MTEntryCategory$>)記事一覧:</p>
<MTSetVars>
current_category=<$MTEntryCategory$>
</MTSetVars>
</MTIfPageNoEmpty>
<MTPageContents count="5">
<MTEntries lastn="999" category=$current_category>
<MTPageContentsHeader><dl></MTPageContentsHeader>
<dt><$MTEntryTitle$></dt>
<dd><$MTEntryExcerpt$></dd>
<MTPageContentsFooter></dl></MTPageContentsFooter>
<$MTPageSeparator$>
</MTEntries>
</MTPageContents>
<MTPageEmpty><p>記事は未登録です</p></MTPageEmpty>
<MTPagination>
<MTPaginationHeader>
<div class="pagenate"><ul>
<MTIfPaginationFirst>
<li><a class="link_before" href="<$MTPaginationFirst$>"><<</a></li>
</MTIfPaginationFirst>
<MTIfPaginationPrev>
<li><a class="link_before" href="<$MTPaginationPrev$>">前の5件</a></li>
</MTIfPaginationPrev>
</MTPaginationHeader>
<MTIfPaginationCurrent>
<mt:ignore>現在のページ</mt:ignore>
<li><span><MTPaginationLink element="number"></span></li>
<MTElse>
<mt:ignore>それ以外(遷移用のリンクあり)</mt:ignore>
<li><a href="<$MTPaginationLink$>"><$MTPaginationLink element="number"$></a></li>
</MTIfPaginationCurrent>
<MTPaginationFooter>
<MTIfPaginationNext>
<li><a class="link_next" href="<$MTPaginationNext$>">次の5件</a></li>
</MTIfPaginationNext>
<MTIfPaginationLast>
<li><a class="link_next" href="<$MTPaginationLast$>">>></a></li>
</MTIfPaginationLast>
</ul></div>
</MTPaginationFooter>
</MTPagination>
このサンプルを出力させると、以下のようになります。
利用用途
エントリー数が多いアーカイブページなど
※検索テンプレートでは使用することが出来ません。ご注意ください。
注意事項
- 記事が1件も無い場合には埋め込まれたテンプレートタグはコメントとなり機能しません。最低1件の記事を登録してください。
- ファイルの生成時に動作するため、MTIf などのタグで数値判別するテクニックは使えません
- 本プラグインをご利用される方は必ず「プラグインご利用の際の注意事項」をお読みください。