エンジニアブログ

エンジニアブログ
MT技術情報

PageBute プラグインで一つのブログ記事を複数ページに分割する

ぴろり上西 2011年06月02日

 弊社で公開中の人気プラグイン PageBute を用いると、長くなりがちなリストアーカイブなどを、指定した記事数ごとに複数ページに分割することができます。一般的には、記事一覧などのリスト系ページを見やすい単位に分割する目的で使われることが多いと思いますが、使い方によっては、例えばこの例のように、 一つの長いブログ記事を複数のページに分割することにも利用できます。このエントリでは、PageBute プラグインを使って、一つのブログ記事をページングする方法を紹介します。

方法 1. mteval モディファイヤを用いる方法

 ブログ記事の個別アーカイブのテンプレートにおいて、ブログ記事の本文/追記を出力する部分のテンプレートタグを以下のように記述します。

<MTPageContents count="1">
<$mt:EntryBody mteval="1"$><$MTPageSeparator$>
</MTPageContents>

 次に、ブログ記事の本文/追記中で、改ページを行いたい場所に <$MTPageSeparator$> テンプレートタグを直接記述します。個別アーカイブのテンプレートにおいて mteval モディファイヤを指定しているので、ブログ記事中の <$MTPageSeparator$> タグがページの区切りとして処理され、一つのブログ記事が複数のページに分割されて生成されます。もし、<$MTPageSeparator$> を一つも記述しなければ、従来どおりに一つのブログ記事は一つのページとして生成されます。長いブログ記事では適当な長さでページ分割を行い、短いブログ記事ではページ分割を行わない、といった調整が自由に行えます。

この段落が 1 ページ目になります。
<$MTPageSeparator$>
この段落は 2 ページ目になります。

方法 2. mteval モディファイヤを用いない方法

 ブログ記事中にテンプレートタグが書いてあったり、テンプレートタグが無条件に実行されるのはちょっと不安など、なんらかの理由で mteval モディファイヤを使えない場合、ブログ記事の個別アーカイブのテンプレートにおいて、ブログ記事の本文/追記を出力する部分のテンプレートタグを以下のように記述します。

<MTPageContents count="1">
<$mt:EntryBody$><$MTPageSeparator$>
</MTPageContents>

 テンプレートはほぼ同じですが、ブログ記事の本文/追記中で、改ページを行いたい場所には、先ほどのテンプレートタグの替わりに<!-- Separator for PageBute --> と記述することで同じ動作が可能です。

この段落が 1 ページ目になります。
<!-- Separator for PageBute -->
この段落は 2 ページ目になります。

 この方法はブログ記事以外にもウェブページなどでも応用が可能です。