« 重複トラックバックのフィルタリング | メイン | コメント/トラックバックスパム対策 »
2005年12月13日
TOPページの分割 [MovableType]
ひとつ前へのリンク では MTEntriesFooterとMTEntryPreviousで
「ひとつ前のページへ」を実現していたが、
これだとindexに5件+過去1件ずつ、という閲覧形式になってしまう。
過去5件なら5件分まとめてダラダラと読みたいわけで、
そこでまたMTPagenateの出番ですよ。
※すでにMTPaginateプラグインが導入されていることが前提
まだの人はここを読め → http://nonchan.web.infoseek.co.jp/cgi-bin/blog/archives/2005/04/22/index.php
weblogの設定変更
・ローカルサイトパスをHOME/cgi-bin/mt に変更

iswebではCGIファイルは/cgi-bin以下にないと動作しないため、
index.cgi の位置を/cgi-bin/mtにする。この設定をmt.cgiで行う。
インデックステンプレートの改造
・拡張子をcgiにする(.phpではないところがミソ)
・先頭に#!/usr/local/bin/phpをいれる(iswebではこの措置が必要)
・エントリー表示部分に以下のような細工をいれる
<MTEntries lastn="5">
メイン記事部分の始まり(before)
<MTPaginate>
<MTPaginateContent max_sections="5">
<MTEntries lastn="20">
5件ずつ4ページ、合計20件になるよう宣言
テンプレートエンド付近にある</MTEntries>は以下のように書き換え。
<$MTPaginateSectionBreak>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<MTPaginateIfFirstPage_>
<$MTPaginateNavigator format_current="%d">
| <a href="<$MTPaginateNextPageLink$>">次ページ»</a>
</MTPaginateIfFirstPage_>
<MTPaginateIfMiddlePage_>
<a href="<$MTPaginatePreviousPageLink$>">«前ページ</a>
| <$MTPaginateNavigator format_current="%d"> |
<a href="<$MTPaginateNextPageLink$>">次ページ»</a>
</MTPaginateIfMiddlePage_>
<MTPaginateIfLastPage_>
<a href="<$MTPaginatePreviousPageLink$>">«前ページ</a>
|<$MTPaginateNavigator format_current="%d">
</MTPaginateIfLastPage_>
</MTPaginateIfMultiplePages>
</MTPaginate>
これでindexのボトム付近には
が現れ、
ページナビゲーションをしてくれるようになる。
1ページあたり何件のエントリーをいれるかは
MTPaginateContent max_sections="5"の数字で指定し、
全体で何件にするかはMTEntries lastn="20"の数字で指定する
ただ、index.cgiとしてのサイズは大きくなるので、
20件以上のエントリをいれるのはお勧めしない。
エントリーのサイズにもよるがサーバーエラー頻発するかも。
isweb_htaccessの書き換え
これをやっておかないと、index.htmlにアクセスされたときに自動で新しいページ分割されたindex.cgiに飛ばない
RedirectMatch /index.html$ http://delta-j.web.infoseek.co.jp/cgi-bin/mt/index.cgi
ちなみにσ(゚∀゚ オレ!!の場合アーカイブページも分割しているので、isweb_htaccessの内容は
こんな感じだ。
RedirectMatch /mt/archives/(.*)\.html$ http://delta-j.web.infoseek.co.jp/cgi-bin/mt/archives/$1.cgi
RedirectMatch /index.html$ http://delta-j.web.infoseek.co.jp/cgi-bin/mt/index.cgi
by Daryl 2005年12月13日 18:16 | Permalink
トラックバック
このエントリーのトラックバックURL:
http://delta-j.web.infoseek.co.jp/cgi-bin/mt/mt-tb.cgi/331
このリストは、次のエントリーを参照しています: TOPページの分割:
» ページの分割とGoogle Custom Search化 from ところによりエンジニア
以前からチャレンジしてみたいと考えていた、ページの分割化にトライしました。今まで... [続きを読む]
トラックバック時刻: 2007年04月18日 13:13
» Movable Typeのページ分割 from ところによりエンジニア
以前からチャレンジしてみたいと考えていた、ページの分割化にトライしました。今まで... [続きを読む]
トラックバック時刻: 2007年04月18日 23:42