Movable Type 備忘録
長くなったページを分割表示する
- Prev Page: MovableTypeをPHP化する
- Next Page: RSSパーサで気になるサイトをチェック!
通常、ブログのトップページとか、月別ページなどでは、複数のエントリが表示されます。
一通り目にすることができるので便利なのですが…長いにも限度がありますよね。
特に月別エントリを表示すると、エントリ数が多かった場合、表示されるまでに時間がかかってしまいます。
そこで、長くなったページを分割表示するカスタマイズをやってみました。
今回参考にさせていただいたサイトは ぐーたら on MT 様です。
カスタマイズ方法
長くなったページを分割表示するには、MTPaginateプラグインを使用します。<br /> MTPaginateプラグインは、訪問者さんがページにアクセスした時点で、PHPによってページ内の表示エントリ数を分割してくれるプラグインです。
▼MTPaginateプラグインの入手はこちらから▼
http://www.nonplus.net/software/mt/MTPaginate.htm
このカスタマイズはブログがPHP化されていないと対応できませんので、注意してください。
ここでは、月別アーカイブを例にして説明します。
まずは、MTPaginateプラグインのインストールです。
上記URLのページの上の方に、「Download」 とありますので、そこからダウンロードしてください。
そして、ダウンロードしたファイルを解凍して、mt/plugins/ ディレクトリの中 にアップロードします。
次に、月別アーカイブのテンプレートをカスタマイズします。
MovableType(ムーバブルタイプ)の管理画面左から テンプレート をクリックして、画面上にある アーカイブ をクリックしてください。
クリックすると、アーカイブ一覧が表示されるので、その中から 日付アーカイブ をクリックします。
テンプレート内のエントリを表示している箇所( <MTEntries>~</MTEntries> )を探してください。
そして、<MTEntries> タグの上に以下のコードを追加します。
<MTPaginate><MTPaginateIfMultiplePages><div class="page-navi"><MTPaginateIfPreviousPage_><a href="<$MTPaginatePreviousPageLink$>">« [Prev]</a></MTPaginateIfPreviousPage_><$MTPaginateNavigator format="%d" separator=" " format_all="All Pages" place_all="before"><MTPaginateIfNextPage_><a href="<$MTPaginateNextPageLink$>">[Next] »</a></MTPaginateIfNextPage_></div></MTPaginateIfMultiplePages><MTPaginateContent max_sections="5" section_start="<div class="main-body">">
青い字の部分が1ページで表示する最大エントリ数となります。
また、赤い字の部分がセクションの区切りとなるタグを指定します。

ちなみにわたしのブログの月別アーカイブのテンプレートは、以下のような構成になっています。
左図の緑色の部分の <div class="main-body">~</div> を1ページの区切りと指定しています。
</MTEntries> の直前で、以下の青い字のコードを追加します。
<$MTPaginateSectionBreak$></MTEntries>
そして、</MTEntries> の後に以下の青い字のコードを追加します。
</MTEntries></MTPaginateContent><MTPaginateIfMultiplePages><div class="page-navi"><MTPaginateIfPreviousPage_><a href="<$MTPaginatePreviousPageLink$>">« [Prev]</a></MTPaginateIfPreviousPage_><$MTPaginateNavigator format="%d" separator=" " format_all="All Pages" place_all="before"><MTPaginateIfNextPage_><a href="<$MTPaginateNextPageLink$>">[Next] »</a></MTPaginateIfNextPage_></div></MTPaginateIfMultiplePages></MTPaginate>
追加したら、保存して再構築します。
以上で、ページ内にエントリ数が多くなりがちな月別エントリページを分割して表示できるようになりました。
ここで紹介しているページ分割の方法はほんの一例で、いろんなアトリビュートがありますので、MTPaginate を参考に自分好みにページ分割してみてくださぁ~い。
Trackback Pings(2)
- from
ムーブメント・ブログ:トレンド情報サイト
先日行った、MovableType(ムーバブル・タイプ)の カスタマイズ、「カテゴリーと月別アーカイブのページ 分割」はエントリーするのも忘れるぐらい、...
- from
CSS Lecture
Paged ArchivesはPHP化せずにアーカイブページを分割する事が出でき...




こんにちは!
今回も参考にさせていただきました。
思いのほかスムーズに出来たのでホッとしています。
ありがとうございました。
>>1 MOVEMENT さん
こんにちわ^^
毎度の訪問ありがとうございます。
問題なく設置できて何よりです:pp_05.gif:
はじめまして。
こちらのブログを参考にMTのカスタマイズに挑戦していま
すが、ページ分割ができずに困っています。
何故なら、<MTEntries> タグが各アーカイブに見当たらな
いからです。MTのVerは3.33でPHP化もしてあります。
アドバイス等頂けると嬉しいです。
>>3 起動戦車ガンタンク さん
はじめまして^^
<MTEntries>タグがない( ̄∇ ̄;)!? とのことですが、<MTEntries>タグにこだわらなくてもいいんです。
上記では月別アーカイブを例にしているので、エントリを1つの区切りとして、5つ分を1ページとしています。
その際、開始セクションと区切りセクションを指定してますので、それさえ指定すれば、エントリはなくてもページ分割可能だと思います。
でも、各アーカイブで<MTEntries>タグがないって…なんででしょうね( ´・ω・`)??
…不思議です。
<MTEntries>が見つからない件ですが、原因が判明しま
した。3.3では日付・月別アーカイブが最新の一件しか
表示されないという不具合の対処の為に<MTEntries sort_by="created_on" sort_order="descend">に変更され
ていたからでした。
あと、ブログ内検索の高速化を実行しましたけど、メチャメチャ早くて気に入ってます。また、検索結果を検索結果ページに吐き出さないので検索結果ページまでレイアウトを整えなければならないのが省けました^^
>>5 起動戦車ガンタンク さん
こんにちわ^^
原因が分かってよかったですね。
わたしも何で見つかんないんだろ…って不思議だったんですよねぇ。
> メチャメチャ早くて気に入ってます。
ですよねっ!!
わたしもメチャ気に入ってます(>∀< )
ちょとカスタマイズの余地はありますが、機能としては十分満足できますよね( ̄∇ ̄)b
> また、検索結果を検索結果ページに吐き出さないので検索結果ページまでレイアウトを整えなければならないのが省けました^^
分かる、分かる!!
わたしも使ってないですもん!!
ちなみに、こちらのMovableTypeのコメントをAjaxで投稿するも設置すると、コメント・プレビューなどのテンプレもいじらなくて済むようになります。
しかも、その後テンプレ差し替えしてもそのまま使えちゃいますので、とってもオススメです( ̄∇ ̄)/
はじめまして
検索から飛んできました!
movable type3.xでコメントが多い場合、例えば10件毎に表示するようなプラグインはあるのでしょうか。
htmlでコメントの分割を行いたいので、MTPaginateは使用できません。
何か良い手はあるのでしょうか。
>>7 エミ さん
こんばんわ^^
PageBute プラグインってのがあります。
http://bizcaz.com/archives/2007/10/06-233222.php
PageBute プラグインはブログの PHP 化有無に限らず使えますのでうってつけかと
それに Pagenate よりカンタンですよ。
分からないことがあれば、言って頂ければわたしの方でサンプルをお作りします。
いつもお世話になっています。
ページの表示について教えてください。
上記にかかれている青い文字コードの記述の順番をかえてもページの表示が
次へ 1 2 3 4 5 すべて になります。
これを
1 2 3 4 5 次へ すべて になるようにしたいのです。
次へを押すと
前へ 1 2 3 4 5 次へ すべて になるようにしたいのです。
青い文字コードの記述を教えていただけますか。
すいませんがご指導よろしくお願いします。
>>9 glass さん
こんばんわ^^
もうこのプラグイン使ってないし、MT3.2 の頃の記事なのでうる覚え
で申し訳ないのですが、
単刀直入にいいますと glass さんがやりたいことはプラグインをカスタマイズしない限りできません。
リストページ( ページ番号リンク )と全ページリンクは MTPaginateNavigator タグで表示できます。
これは常にいっしょに表示されます。ページ番号リンクと全ページリンクの間に「次へ」というリンクを入れることはできません。
詳しくは配布元さんのプラグイン説明をご覧頂くとして、このような回答でよかったですか
ご返答有難うございます。
これってけっこう古かったんですね。
>>11 glass さん
そうですねぇ
わたしが MT3.2 を使った頃には既にあったものですからねぇ。
それに配布元もこのプラグインのバージョンアップを行ってませんので使い続けるのもどうかと思って、わたしは今は使ってません。( 使ってる人もいるようですけどね )