xserver~自宅サーバー構築、Movable Typeのカスタマイズ、Linux、ブログなどについて解説していきます~

サイトロゴ
HOME > Movable Type > カスタマイズ > 第22回:カテゴリーア...
Movable Type
RSS Atom

Movable Type のカスタマイズ関連について扱っていきます。

第22回:カテゴリーアーカイブをページ分割する

第21回では、トラックバックURLを簡単にコピーできるようにする方法を説明しました。今回は、1ページが長くなりがちなカテゴリーアーカイブページや月別アーカイブページを複数のページに分割する方法について説明します。

月別アーカイブならば、1ページに表示されるエントリー数に限りがありますが、カテゴリーページの場合は、ページ分割しないと徐々にエントリー数が肥大化し、ページの表示が徐々に重くなっていきます。これを解決するために、MTPaginate という、ページ分割するためのプラグインを利用して、長くなったページを複数のページに分割します。

■このエントリーで参考にした記事:
ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック
小粋空間:「カテゴリーアーカイブと月別アーカイブのページ分割」

まず、以下のサイトより MTPaginate.zip をダウンロードしてきてください。解凍すると、MTPaginate.pl が入っているので、plugins ディレクトリにコピーしてインストールは完了です。

http://www.nonplus.net/software/mt/MTPaginate.htm

以下図が、完成形の画像です。

MTPaginate


■メインページのページ分割

まず、メインページ(トップページ)をページ分割します。「テンプレート」→「メインページ」を開いて、以下ソースを参考に編集してください。青文字が新たに追記する箇所です。オレンジの部分は、各自でカスタマイズできます。それぞれのタグの意味については後述します。

<MTPaginate>
<MTPaginateContent max_sections="20">

<MTEntries lastn="200">
・・・
・・・省略
・・・
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>


<MTPaginateIfMultiplePages>
<MTPaginateIfFirstPage_>
<$MTPaginateNavigator format_current="%d"$>
| <a href="<$MTPaginateNextPageLink$>"> 次のページへ &gt;&gt;</a>
</MTPaginateIfFirstPage_>


<MTPaginateIfMiddlePage_>
<a href="<$MTPaginatePreviousPageLink$>">&lt;&lt; 前のページへ </a>
| <$MTPaginateNavigator format_current="%d"$> |
<a href="<$MTPaginateNextPageLink$>"> 次のページへ &gt;&gt;</a>
</MTPaginateIfMiddlePage_>


<MTPaginateIfLastPage_>
<a href="<$MTPaginatePreviousPageLink$>">&lt;&lt; 前のページへ </a>
| <$MTPaginateNavigator format_current="%d"$>
</MTPaginateIfLastPage_>


</MTPaginateIfMultiplePages>
</MTPaginate>

まず、<MTEntries>~</MTEntries>を<MTPaginate>~</MTPaginate>で挟みます。

次に、MTPaginateContentタグの max_sections 属性で1ページに表示する件数を指定します。ここでは、max_sections で「件数」を指定していますが、max_bytes で「バイト数」ごとに、max_words で「単語」ごとにページを分割します。

MTPaginateIfFirstPageタグで、最初のページでの表示方法、MTPaginateIfMiddlePageタグで、2ページ目以降の表示方法、MTPaginateIfLastPage は、最後のページでの表示方法指定します。その3つのタグを<MTPaginateIfMultiplePages>~</MTPaginateIfMultiplePages> で囲みます。

MTPaginatePreviousPageLinkタグは、前のページへのリンクを、MTPaginateNextPageLinkタグは、次のページへのリンクを挿入します。

<$MTPaginateNavigator format_current="%d"$> の箇所は、ページ番号の表示方法を指定します。ここでは、 format_current="%d"属性を指定しており、"1 | 2 | 3 | 4"のように表示されます。

また、<$MTPaginateNavigator style="popup"$> と指定した場合は、記事番号がプルダウンメニューで表示されます。その他にもたくさんの属性があるので、詳しくは、http://www.nonplus.net/software/mt/MTPaginate.htm を参照してください。

<MTEntries lastn="200">では、何件までページ分割するかを指定します。仮に、1000件のエントリーがあったとしても、 lastn="200"では、200件目までしか分割されないので、max_sections="20"と指定した場合は、最大でも、10分割(1 | 2 | ~ | 10)までしか分割されません。なお、lastn 属性を指定しなければ、1000件に達するまでページ分割されます。
(最大表示件数200件[ lastn] = 1ページの表示件数20[ max_sections ] X 10分割)

以上、メインページでの分割方法を簡単に説明してきましたが、カテゴリーアーカイブでも月別アーカイブでも、分割方法は変わらないので各自でテンプレートを編集してページ分割してみてください。

以上、第22回は終了です。
合わせて、第38回:同一ページで複数のページ分割を用いる も参照しておいてください。

参考になりましたらポチっとお願いします♪

トラックバック

このエントリーのトラックバックURL:


コメントを投稿

ブログをやるなら
ブログランキング

スポンサードリンク
私が読んだ書籍
ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック
カスタマイズ中心の書籍。すでにMTを触っている方にオススメ。どこからでも気軽に読めるのがGOODです。MT本の中でも特にお勧めの一冊。

Movable Type標準ハンドブック Movable Typeで今すぐできるウェブログ入門 改訂版
標準ハンドブックの名に相応しいMT入門本。インストールから基本設定、簡易なカスタマイズまで網羅。白黒ですが、デザインがすっきりしていて読み易いです。

Movable Typeでつくる!最強のブログサイト
入門編から基本設定、3カラムデザインへの変更、スタイルシートの説明、カスタマイズ応用編など広い範囲で網羅しています。370p とボリューム感も。

Movable Typeスタイル&コンテンツデザインガイド―コンテンツ管理システム(CMS)ツールとしてのMovable Type活用術&実践サイトデザイン術
MTをCMSツールとして活用するための仕組みや特徴を解説。前半のタグリファレンスは便利。後半のデザイン例は、オリジナルなデザインが作れる方なら不要です。初心者にはやや不向き。