TopMovable Typeカスタマイズページ分割 > 2005年11月
2005年11月20日

検索結果ページのページ分割

ページ分割シリーズの締めくくりは「検索ページのページ分割」です。
このカスタマイズを行うことで通常の検索エンジンのように一定件数毎にページを分割することができます。

この技は自分で発見したのではなく、かなり以前に caramell*vnilla さんと Document_Not_Bound さんのコメントのやりとりでみつけましたので、ご紹介まで(カスタマイズ方法は掲載されていないようです)。

以下、カスタマイズ方法です。

1.プラグインファイルのダウンロード

MT Extensions より MTPaginate をダウンロード(ページ上の方にある「Download」をクリック)。ファイルは任意のフォルダ(デスクトップ等)に保存します。古いバージョン(1.24)では2ページ目以降の表示ができなかったため、既にお使いの方も最新版をダウンロードされることをお勧めします。1.26では正常に動作しました。

2.プラグインファイルのアップロード

ダウンロードしたファイルを解凍し、その中の MTPaginate.pl を plugins ディレクトリにアップロードします。

注:この情報はバージョン1.28のものです。
ダウンロードしたファイルを解凍し、その中の MTPaginate ディレクトリを下記のディレクトリ構成になるように plugins ディレクトリに丸ごとアップロードします。

plugins/MTPaginate/lib/MTPaginate.pm
plugins/MTPaginate/MTPaginate.pl

3.検索用テンプレートの修正

検索用テンプレートは管理画面から編集できないため、ファイルを直接編集します。なお元のファイルはバックアップ(同じ内容のものを別のファイル名で保存)しておきましょう。

search_templates/default.tmpl

をダウンロード、任意のエディタで開き、検索結果テンプレートの MTSearchResults タグの前後に、下記のリストのように青色部分のタグを追加します。

<MTPaginate mode="cgi">
    <MTPaginateIfMultiplePages>
    <div class="paginate">
    <MTPaginateIfPreviousPage_>
    <a href="<$MTPaginatePreviousPageLink$>" title="previous page link">&#65308;</a>
    </MTPaginateIfPreviousPage_>
    <$MTPaginateNavigator format_all="All Pages" place_all="after"$>
    <MTPaginateIfNextPage_>
    <a href="<$MTPaginateNextPageLink$>" title="next page link">&#65310;</a>
    </MTPaginateIfNextPage_>
    </div>
    </MTPaginateIfMultiplePages>
    <MTPaginateContent max_sections="10">
 
    <MTSearchResults>
 
    <MTBlogResultHeader>
    <h2><MT_TRANS phrase="Search Results from"> <$MTBlogName$></h2>
    </MTBlogResultHeader>
 
    <h3><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></h3>
    <p><$MTEntryExcerpt$> <$MTEntryEditLink$></p>
    <p class="posted"><MT_TRANS phrase="Posted in"> <$MTBlogName$> <MT_TRANS phrase="on"> <$MTEntryDate$></p>
 
    <$MTPaginateSectionBreak$>
 
    </MTSearchResults>
 
    </MTPaginateContent>
 
</MTPaginate>

検索用テンプレートはCGIとして動作するため、上記リスト1行目の

mode="cgi"

は必須です。この設定を行っていない状態で検索を実行すると、検索結果画面で

The MTPaginate tag only works within PHP documents!
Make sure that the document extension is .php and that your server supports PHP documents.

というメッセージが表示されます。

赤色で示している div 要素はページ分割機能とは直接関係ありませんが、ページリンク用のスタイルを指定する場合を考慮して設定しています。必要に応じて下記のようなCSSをスタイルシート(styles-site.css)に追加してください。

.paginate {
    text-align: center;
    font-size: 9px;
}

編集が完了したら元のディレクトリにアップロードします。これで各ページから検索を実行してみてください。

4.日本語を利用する場合

このテンプレートに日本語を直接記述すると正常に動作しなくなる可能性があります。
日本語を表示したい場合、例えばページリンクの title 属性で日本語を表示したい場合は

<a href="<$MTPaginatePreviousPageLink$>" title="previous page link">&#65308;</a>
                 :
<a href="<$MTPaginateNextPageLink$>" title="next page link">&#65310;</a>

の赤色部分を青色の

<a href="<$MTPaginatePreviousPageLink$>" title="<MT_TRANS phrase="Previous Page Link">">&#65308;</a>
                 :
<a href="<$MTPaginateNextPageLink$>" title="<MT_TRANS phrase="Next Page Link">">&#65310;</a>

に変更します。
そして

lib/MT/L10N/ja.pm

を任意のエディタで開いて下記を追加します。

'Next Page Link' => '次のページへ',
'Previous Page Link' => '前のページへ',

「Previous Page Link」「Next Page Link」という文字列やそれに対応する日本語名ですが、MT_TRANS タグの phrase 属性の内容と
ja.pm の '' で括った英語が一致すればOKですので、お好きな内容を設定してください。
ただし ja.pm 内ですでに使われている phrase 属性と重複しないように気をつけてください。

また上記2行を挿入する位置はどこでも構いませんが、全体を括っている

%Lexicon = (
    :
);

の間に挿入してください。他と同じような設定があるので、それに並べて挿入すれば大丈夫でしょう。最初から設定されているものは行頭にタブがありますが、なくても問題ありません。

5.注意事項

当サイトで動作確認したところ、ページリンクの表示で若干不具合("All Pages" 横のセパレータ位置が妙)があるようです。
またページ遷移の度にCGIが起動されるため、サーバに若干負荷がかかりますのでご注意ください。

2007.05.04 追記
プラグインのバージョンアップに伴い、アップロード方法を修正しました。また 3.3 よりテンプレート化されたので、本文の一部を修正しました。

Comments [14] | Trackbacks [2]
2005年11月15日

エントリーアーカイブのページ分割

MTPaginate プラグインを利用したページ分割はかなり普及していますが、このプラグインはひとつのエントリーをさらにページ分割することも可能です。

ということで、エントリーアーカイブ(個別エントリーアーカイブ)のページ分割をご紹介します。エントリーが長文になる場合の分割はもちろん、例えばアフィリエイトで Movable Type を利用している場合、カテゴリーアーカイブに複数の商品を紹介してエントリーアーカイブではひとつの商品を表示するというのが一般的と思われますが、エントリーアーカイブで複数の商品をすっきりと表示することも可能になります。

1ページ目を表示まず画像を使って完成イメージをご説明します。
左のサンプルはデフォルトテンプレートを使ったページ分割イメージです。上がタイトル、その下にカスタマイズで追加された分割ページのリンクがあり、その下が本文です。サンプルでは計3ページ(3段落)に分割されており、1ページ目の「段落1」という本文を表示している状態です。
2ページ目を表示「2」という2ページ目のリンクをクリックすると、分割された「段落2」という本文に切り替わります。
全ページ表示「All Pages」をクリックすると全ての段落が表示されます。この状態が通常の1エントリー表示と同じです。

このエントリーも実験台としてページ分割を施しています。ページリンクはエントリーの上下に設置しています。エントリー先頭がナビゲーションだらけになってるとかいうツッコミはおいといて、エントリーのページ分割を体感頂ければ幸いです。

次にカスタマイズ方法です。

1.プラグインファイルのダウンロード

MT Extensions より MTPaginate をダウンロード(ページ上の方にある「Download」をクリック)。ファイルは任意のフォルダ(デスクトップ等)に保存します。

2.プラグインファイルのアップロード

ダウンロードしたファイルを解凍し、その中の MTPaginate.pl を plugins ディレクトリにアップロードします。

注:この情報はバージョン1.28のものです。
ダウンロードしたファイルを解凍し、その中の MTPaginate ディレクトリを下記のディレクトリ構成になるように plugins ディレクトリに丸ごとアップロードします。

plugins/MTPaginate/lib/MTPaginate.pm
plugins/MTPaginate/MTPaginate.pl

3.(3.2以降の場合)アーカイブURL/アーカイブ・パスの設定

管理メニューの「設定」→「公開」にある「アーカイブの設定」のチェックボックスをチェックします。チェックするとその下に「アーカイブURL」「アーカイブ・パス」の項目が表示されるので、下記のように設定します。

  • アーカイブURL:サイトURL/archives/
  • アーカイブ・パス:サイト・パス/archives

サイトURLとサイト・パスは同じページに表示されている「サイトURL」「サイト・パス」の内容をそのままあてはめてください。例えばサイトURLが http://www.koikikukan.com/ であれば、アーカイブURLは

http://www.koikikukan.com/archives/

となります。
なおこれらはページ分割を行わない場合も設定することをお勧めします。

4.ファイル名の変更

3.1x まで:管理メニュー左の「ウェブログの設定」→「アーカイブの設定」の下にある「アーカイブ」欄の「アーカイブの種類」が「個別」の「アーカイブ・ファイルのテンプレート」のテキストボックス欄に下記を設定。
3.2x 以降:管理メニュー左の「設定」→「公開」で「アーカイブ・マッピング」欄の「アーカイブ種類」が「エントリー」の「出力フォーマット」のテキストボックス欄に下記を設定。

<$MTArchiveDate format="%Y/%m/%d/%H%M%S"$>.php

上記はMTタグを利用したものですが、3.2x 以降はフォーマットの簡略化が可能になっていますので下記の設定でもOKです。

%y/%m/%d/%h%n%s.php

設定フォーマットは「年/月/日/時分秒.php」というファイルを出力するようになっていますが、エントリーIDを利用した設定、

<$MTEntryID pad="1"$>.php

でも問題ありません(3.2 以降の簡略化フォーマットであれば "%e.php" )。フォーマットの詳細は公式サイトのユーザーズマニュアル・日付タグのフォーマットを参照ください(2005.11.15現在ではMTタグ用のフォーマットのみ記載されています)。

設定したら「変更を保存」をクリックしてください。

5.XML宣言の修正

ページを XHTML文書、例えば XHTML1.0 として適合させている場合、前項と同じ画面の「テンプレートの内容」の1行目に、

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>

という XML 宣言が記述されているケースがあります(記述されていなければこの項目はスキップしてください)が、php ファイルに変更するとサーバではこの行をPHPスクリプトとして誤認識してしまい、PHPエラーとなります。エラーが発生するとページが正常に生成されないため、結果的に真っ白なページが表示される可能性があります。

このような場合、下記のようにPHPスクリプトとして動作するように修正します。

<?php echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>

6.テンプレートの修正

エントリーアーカイブテンプレートにページ分割用タグを設定します。
エントリーを分割するには分割するためのキーワード(セパレータ)が必要ですが、ここでは

  • HTML要素
  • エントリー内の文字列
  • セパレータ

の3種類を使った分割方法について説明します。

6.1 HTML要素でページ分割する

エントリーアーカイブの MTEntryBody の前後に下記の青色部分を追加します。リストはデフォルトテンプレートの場合です。

<MTPaginate>
<h3 class="entry-header"><$MTEntryTitle$></h3>
<div class="entry-content">
   <MTPaginateIfMultiplePages>
   <div class="paginate">
   <MTPaginateIfPreviousPage_>
   <a href="<$MTPaginatePreviousPageLink$>" title="前のページへ">&#65308;</a>
   </MTPaginateIfPreviousPage_>
   <$MTPaginateNavigator format_all="All Pages" place_all="after"$>
   <MTPaginateIfNextPage_>
   <a href="<$MTPaginateNextPageLink$>" title="次のページへ">&#65310;</a>
   </MTPaginateIfNextPage_>
   </div>
   </MTPaginateIfMultiplePages>
   <MTPaginateContent max_words="1" section_start_tag="p">
   <div class="entry-body">
      <$MTEntryBody$>
   </div>
   <div id="more" class="entry-more">
      <$MTEntryMore$>
   </div>
   </MTPaginateContent>
</div>
</MTPaginate>

3.2-ja 公開テンプレートの場合は下記の通りです。HTMLは若干異なっていますがページ分割用タグの挿入位置は同じです。

<!-- エントリータイトル -->
<MTPaginate>
<h3 class="entry-header">●<$MTEntryTitle$></h3>
 
<!-- エントリー -->
<div class="entry-content">
   <MTPaginateIfMultiplePages>
   <div class="paginate">
   <MTPaginateIfPreviousPage_>
   <a href="<$MTPaginatePreviousPageLink$>" title="前のページへ">&#65308;</a>
   </MTPaginateIfPreviousPage_>
   <$MTPaginateNavigator format_all="All Pages" place_all="after"$>
   <MTPaginateIfNextPage_>
   <a href="<$MTPaginateNextPageLink$>" title="次のページへ">&#65310;</a>
   </MTPaginateIfNextPage_>
   </div>
   </MTPaginateIfMultiplePages>
   <MTPaginateContent max_words="1" section_start_tag="p">
   <div class="entry-body"><$MTEntryBody$></div>
 
   <!-- 追記 -->
   <MTEntryIfExtended>
   <div id="more" class="entry-more"><$MTEntryMore$></div>
   </MTEntryIfExtended>
   </MTPaginateContent>
</div><!-- /entry-content -->
</MTPaginate>

上記リストの15行目(公開テンプレートのリストは18行目)にある、

section_start_tag="p"

が分割対象のタグを指定する部分です。赤色の p は p 要素を示しており、つまりこの例では p 要素で分割する設定になっています。この部分にセパレータにしたい任意のHTML要素名を設定してください。

p 要素はエントリーの編集画面の下にある「改行設定(3.1x以前は「テキストフォーマット」)」で「改行を変換する」という指定になっていれば、空行が p 要素に変換されます。したがって手動で付与する必要はありませんが、上記リストの設定では空行がページ分割のセパレータとなりますので、分割ページに空行を含む場合は他のHTML要素を指定するか、6.2項または6.3項の設定をお勧めします。

また section_start_tag 属性でページ分割する場合、max_words 属性(または max_bytes 属性)の設定が必須のようです。また max_xxx の設定が section_start_tag より優先されるため、これらに大きな値を設定していると、section_start_tag で指定したHTML要素が含まれていても、そこでページ分割されない可能性があります。
本来は両者を使ってページ分割を制御するようですが、とりあえずここでは最小値("1")を設定して常にHTML要素でページ分割される設定にしています。

赤色で示している div 要素はページ分割機能とは直接関係ありませんが、ページリンク用のスタイルを指定する場合を考慮して設定しています。必要に応じて下記のようなCSSをスタイルシート(styles-site.css)に追加してください。6.2項、6.3項も同様です。

.paginate {
    text-align: center;
    font-size: 9px;
}

6.2 エントリー内の文字列でページ分割する

次にエントリー内の文字列でページ分割する方法です。ここでは section_start 属性を利用します。
6.1項の

<MTPaginateContent max_words="1" section_start_tag="p">

の部分を

<MTPaginateContent max_words="1" section_start="&lt;div class=&quot;section&quot;&gt;">

に置き換えて設定します。赤色部分がセパレータとなります。この例では

&lt;div class=&quot;section&quot;&gt;

がセパレータですが、これは

<div class="section">

と同じで、つまりエントリー内に挿入した、class 属性が "section" という div 要素をセパレータとしてページ分割が行われます。タグの「<」 と「>」およびクォート「"」は文字実体参照にします。他の設定は6.1と同様です。

6.3 page_break で分割する

3つめは、エントリーにページ分割専用のセパレータを挿入する方法です。プラグインはこの特定のセパレータ(文字列)をサーチしてページ分割します。
例えば「=====」という文字列をセパレータにする場合、ページ分割したい段落と段落の間に、

段落1
 
=====
 
段落2

という具合にセパレータを挿入します(ここではセパレータの上下に空行を挿入することとします)。
6.2項と同様6.1項のリストの、

<MTPaginateContent max_words="1" section_start_tag="p">

の部分を、

<MTPaginateContent page_break="&lt;p&gt;=====&lt;/p&gt;">

に置き換えて設定します。赤色部分がセパレータとなります。この例では

&lt;p&gt;=====&lt;/p&gt;

がセパレータですが、エントリー登録時、エントリーの編集画面で「改行を変換する」という設定になっている場合、セパレートには p 要素が付与されて、実際のHTMLページでは

<p>=====</p>

となりますので、page_break 属性にはセパレータ文字列の「=====」と、その前後に文字実体参照にした 「&lt;p&gt;」と「&lt;/p&gt;」で挟んだ形で設定します。

注意点は、エントリーアーカイブでセパレータが設定されたページを一括表示した時、セパレータは表示されませんが、他のアーカイブやメインページ等ではセパレータが表示されます(他のページでは同じカスタマイズを施していないので当然ですが)。これが6.2項との大きな違いです。

ということで、本項の場合は表示されても差し支えないセパレータを付与するようにしてください。なお6.2項と同様にHTML要素を指定すると、エントリーアーカイブの一括表示で指定HTML要素が除去されてしまいますのでご注意ください。

7.ページリンク表示位置の変更

サンプルリストではエントリー本文の先頭にページリンクを表示するようにしていますが、エントリー本文の下に付与する場合、6.1項のリストを例に挙げると下記のように設定します。
<MTPaginate>
<h3 class="entry-header"><$MTEntryTitle$></h3>
<div class="entry-content">
   <MTPaginateContent max_words="1" section_start_tag="p">
   <div class="entry-body">
      <$MTEntryBody$>
   </div>
   </MTPaginateContent>
   <div id="more" class="entry-more">
      <$MTEntryMore$>
   </div>
</div>
   <MTPaginateIfMultiplePages>
   <div class="paginate">
   <MTPaginateIfPreviousPage_>
   <a href="<$MTPaginatePreviousPageLink$>" title="前のページへ">&#65308;</a>
   </MTPaginateIfPreviousPage_>
   <$MTPaginateNavigator format_all="All Pages" place_all="after"$>
   <MTPaginateIfNextPage_>
   <a href="<$MTPaginateNextPageLink$>" title="次のページへ">&#65310;</a>
   </MTPaginateIfNextPage_>
   </div>
   </MTPaginateIfMultiplePages>
</MTPaginate>

6.1項のページリンクの設定を残しておけば上下両方に設定することも可能です。

8.追記を各ページに変更する

これまでの設定では追記もページ分割対象、つまり最後のページの最後に追記が表示されますが、追記の内容を各ページで表示したい場合、6.1項のリストを例に挙げると、

<MTPaginate>
<h3 class="entry-header"><$MTEntryTitle$></h3>
<div class="entry-content">
   <MTPaginateIfMultiplePages>
   <div class="paginate">
   <MTPaginateIfPreviousPage_>
   <a href="<$MTPaginatePreviousPageLink$>" title="前のページへ">&#65308;</a>
   </MTPaginateIfPreviousPage_>
   <$MTPaginateNavigator format_all="All Pages" place_all="after"$>
   <MTPaginateIfNextPage_>
   <a href="<$MTPaginateNextPageLink$>" title="次のページへ">&#65310;</a>
   </MTPaginateIfNextPage_>
   </div>
   </MTPaginateIfMultiplePages>
   <MTPaginateContent max_words="1" section_start_tag="p">
   <div class="entry-body">
      <$MTEntryBody$>
   </div>
   </MTPaginateContent>
   <div id="more" class="entry-more">
      <$MTEntryMore$>
   </div>
</div>
</MTPaginate>

という具合に、

</MTPaginateContent>

を追記用タグの前に設定することで可能になります。
追記を利用して各ページ共通の情報を表示するテクニックです。

2005.11.16 追記
6.1項に公開テンプレート用のリストを追加しました。また本文の記述誤りを修正しました。

2005.11.20 追記
3.2-ja 以降用にアーカイブURL/アーカイブ・パスの設定を追記しました。

2007.05.04 追記
プラグインのバージョンアップに伴い、アップロード方法を修正しました。

Comments [2] | Trackbacks [5]
2005年11月13日

トップページのページ分割

Movable Type のトップページ(メインページ)のページ分割方法をご紹介します。
設定方法は以前エントリーしたカテゴリーアーカイブと月別アーカイブのページ分割とほとんど同じですが、考慮すべき点があることと、前記エントリーと内容を合体させるとタイトルを変更しなければならなくなるため、別エントリーでご紹介します。

1.プラグインファイルのダウンロード

MT Extensions より MTPaginate をダウンロード(ページ上の方にある「Download」をクリック)。ファイルは任意のフォルダ(デスクトップ等)に保存します。

2.プラグインファイルのアップロード

注:この情報はバージョン1.28のものです。
ダウンロードしたファイルを解凍し、その中の MTPaginate ディレクトリを下記のディレクトリ構成になるように plugins ディレクトリに丸ごとアップロードします。

plugins/MTPaginate/lib/MTPaginate.pm
plugins/MTPaginate/MTPaginate.pl

3.ファイル名の変更

テンプレートのメインページの編集画面を開き、「出力ファイル名」を index.html から index.php に変更して「保存」をクリックします。
もしファイル名が index.html のままになっていると、カスタマイズ終了後、ページを表示した時に

The MTPaginate tag only works within PHP documents!
Make sure that the document extension is .php and that your server supports PHP documents.

というメッセージが表示されますのでご注意ください。

4.XML宣言の修正

ページを XHTML文書、例えば XHTML1.0 として適合させている場合、前項と同じ画面の「テンプレートの内容」の1行目に、

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>

という XML 宣言が記述されているケースがあります(記述されていなければこの項目はスキップしてください)が、php ファイルに変更するとサーバではこの行をPHPスクリプトとして誤認識してしまい、PHPエラーとなります。エラーが発生するとページが正常に生成されないため、結果的に真っ白なページが表示される可能性があります。

このような場合、下記のようにPHPスクリプトとして動作するように修正します。

<?php echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>

5.ページ分割の設定

テンプレートにページ分割用タグを設定します。
メインページのテンプレート編集画面の「テンプレートの内容」に、リストのように青色部分を追加します。一見複雑にみえますが <MTEntries> の直前と </MTEntries> の前後に加えるだけですので MTEntries という文字列を検索して編集すると良いでしょう。

     :
<MTPaginate>
<MTPaginateContent max_sections="5">
<MTEntries lastn="30">
     :
   (省略)
     :
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<div class="paginate">
<MTPaginateIfPreviousPage_>
<a href="<$MTPaginatePreviousPageLink$>">&#65308;</a>
</MTPaginateIfPreviousPage_>
<$MTPaginateNavigator style="links" format_all="All pages" place_all="after" separator=" | ">
<MTPaginateIfNextPage_>
<a href="<$MTPaginateNextPageLink$>">&#65310;</a>
</MTPaginateIfNextPage_>
</div>
</MTPaginateIfMultiplePages>
</MTPaginate>
     :

5.1 表示エントリー数の設定

リスト中の、

<MTPaginateContent max_sections="5">
<MTEntries lastn="30">

にある

max_sections="5"

は、1ページに表示する最大エントリー数を設定します。ここでは5エントリー表示する設定にしています。またその下の、

lastn="30"

は、全ページ合計の表示エントリー数です。ここでは30に設定しています。max_sections が1ページに5エントリーずつ表示する設定になっているので、トップページは計6ページに分割して表示することになります。lastn の値が max_sections より小さいとページ分割が行われませんのでご注意ください。

5.2 スタイルの設定

赤色の div 要素はスタイルを設定するために付与しています。必要に応じて下記のようなCSSをスタイルシート(styles-site.css)に追加してください。

.paginate {
    text-align: center;
    font-size: 9px;
}

設定が完了したら保存し、再構築します。 注:7項の作業を終えるまでページは確認しないでください。

6.ページリンクの設定

ページリンクサンプルリストをそのままご利用になると、ページリンクは画像のようなフォーマットで表示されます。ご覧の通り、各ページへのリンクと現在のページから前後のページへジャンプするのリンク、および全ページを一括表示するリンクがあります。各ページのリンクの現在のページはテキスト表示になります。また一番最初のページは「<」を表示せず、最後のページは「>」を表示しないようにプラグインで制御されています。

サンプルリストではページリンクをページの一番下に表示するように配置していますが、ページの上に表示したい場合は、

     :
<MTPaginate>
<MTPaginateIfMultiplePages>
<div class="paginate">
<MTPaginateIfPreviousPage_>
<a href="<$MTPaginatePreviousPageLink$>">&#65308;</a>
</MTPaginateIfPreviousPage_>
<$MTPaginateNavigator style="links" format_all="All pages" place_all="after" separator=" | ">
<MTPaginateIfNextPage_>
<a href="<$MTPaginateNextPageLink$>">&#65310;</a>
</MTPaginateIfNextPage_>
</div>
</MTPaginateIfMultiplePages>
<MTPaginateContent max_sections="5">
<MTEntries lastn="30">
     :
   (省略)
     :
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
</MTPaginate>
     :

としてください。ページリンクはページの上下両方に付与することも可能です。
注意点としては、必ず MTPaginate タグと MTPaginateContent タグの間に設定してください。誤って MTPaginate の上に設定すると再構築エラーになり、MTPaginateContent の下に貼り付けると再構築はできますが何も表示されなくなりますのでご注意ください。

7.index.html の削除

トップページを index.html という出力ファイル名で再構築したことがある場合、index.html がサーバ上に残ります。このファイルが残っていると、

http://~/

という、最後が "/" で終了するURLの場合、html ファイルを優先に検索します。html ファイルが表示されるとページ分割は正常に動作しません。レンタルサーバの場合は任意のFTPソフトを使って index.html を直接削除してください(Movable Type にはファイルを削除する機能はありません)。

8.PHPのバージョンについて

ページ分割はPHP4.1以下では正常に動作しないようです。詳細については、Cool Gaming ! weBlogさんのカテゴリ、月別アーカイブのページ分割を参照ください。

2005.11.15 追記
MTPaginateIfMultiplePages タグの位置を変更しました。

2007.04.24 追記
プラグインのバージョンアップに伴い、アップロード方法を修正しました。

Comments [72] | Trackbacks [21]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3