TopMovable Typeカスタマイズページ分割 > 2008年4月
2008年4月22日

Movable Type のページ分割によるナビゲーションの前後ページ表示を絞り込む

April 22,2008 1:11 AM
Tag:[, , ]
Permalink

Movable Type の MTPaginate プラグインによるページ分割を行った際、ナビゲーションの前後ページの表示を絞り込む方法です。

どういうことかと言うと、デフォルトの設定では、分割されたページが下の画面のようにすべて表示されてしまうのですが、本エントリーのカスタマイズを行えば、(多分)直近の前後ページのみの表示に変更できる、というものです。

カスタマイズ前

下は、カスタマイズを行った後のナビゲーションです。上の画面と同じ、5ページに分割されたサンプルで、1ページ目を表示している状態です(とりあえず前後1ページのナビゲーションを表示する設定にしています)。

カスタマイズ後

2ページ目を表示している時のナビゲーションです。3ページ目のナビゲーションが現れました。

カスタマイズ後

3ページ目を表示している時のナビゲーションです。4ページ目のナビゲーションが現れ、1ページの表示が消えます。

カスタマイズ後

4ページ目を表示している時のナビゲーションです。5ページ目のナビゲーションが現れ、2ページの表示が消えました。

カスタマイズ後

5ページ目を表示している時のナビゲーションです。3ページの表示が消えました。

カスタマイズ後

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

1.MTPaginate プラグインによるページ分割の設定

下記の記事を参考にして、MTPaginate プラグインを Movable Type に設定してください。

注:2項を実施する前に、必ずページ分割が正常に動作することを確認してください。すべてを一気に行うと、正常に動作しなかった場合の切り分けができなくなります。

2.プラグインファイルの修正

MTPaginate/lib/MTPaginate.pm を任意のエディタで開き、赤色部分(v1.28 では 498行~506行)を青色部分に置き換えます。

                        $format_title = " . sprintf(' title=\"$format_title\"', \$i)" if $format_title;
                        $res .=<<PHP;
for(\$i = $start; \$i <= $end; \$i++) {
        if(\$i > $start)
                echo '$separator';
        if(\$i == \$paginate_current_page) {
                echo sprintf("$format_current", \$i);
        } else {
                echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
}
PHP
                        if ($format_all && $place_all eq 'after') {

下が置き換えた後のリストです。

                        $format_title = " . sprintf(' title=\"$format_title\"', \$i)" if $format_title;
                        $res .=<<PHP;
for (\$i = $start; \$i <= $end; \$i++) {
  if (\$paginate_current_page == 'all') {
    if(\$i > $start)
      echo '$separator';
    if(\$i == \$paginate_current_page) {
      echo sprintf("$format_current", \$i);
    } else {
      echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
    }
  } else {
    if (\$i > $start) {
      if (\$i == \$paginate_current_page && \$i != 1) {
        echo '$separator';
      } else if (\$i < \$paginate_current_page) {
        if (\$paginate_current_page - \$i < $offset) {
          echo '$separator';
        }
      } else {
        if (\$i - \$paginate_current_page < ($offset+1)) {
          echo '$separator';
        }
      }
    }
    if (\$i == \$paginate_current_page) {
      echo sprintf("$format_current", \$i);
    } else {
      if(\$i < \$paginate_current_page) {
        if(\$paginate_current_page - \$i < ($offset+1)) {
          echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
      } else {
        if(\$i - \$paginate_current_page < ($offset+1)) {
          echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
      }
    }
  }
}
PHP
                        if ($format_all && $place_all eq 'after') {

追加した箇所の2行上に、さらに青色の行を1行追加してください。

                        $format_title = " . sprintf(' title=\"$format_title\"', \$i)" if $format_title;
                        my $offset = $args->{offset} || 2;
                        $res .=<<PHP;
for (\$i = $start; \$i <= $end; \$i++) {
  if (\$paginate_current_page == 'all') {
    if(\$i > $start)
      echo '$separator';
    if(\$i == \$paginate_current_page) {
      echo sprintf("$format_current", \$i);
    } else {
      echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
    }
  } else {
    if (\$i > $start) {
      if (\$i == \$paginate_current_page && \$i != 1) {
        echo '$separator';
      } else if (\$i < \$paginate_current_page) {
        if (\$paginate_current_page - \$i < $offset) {
          echo '$separator';
        }
      } else {
        if (\$i - \$paginate_current_page < ($offset+1)) {
          echo '$separator';
        }
      }
    }
    if (\$i == \$paginate_current_page) {
      echo sprintf("$format_current", \$i);
    } else {
      if(\$i < \$paginate_current_page) {
        if(\$paginate_current_page - \$i < ($offset+1)) {
          echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
      } else {
        if(\$i - \$paginate_current_page < ($offset+1)) {
          echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
      }
    }
  }
}
PHP
                        if ($format_all && $place_all eq 'after') {

修正が終わったら保存し、元のディレクトリにアップロードして、ファイルを上書きしてください。

うまく動かないようでしたら、元のMTPaginateのプラグインアーカイブから同じファイルを取り出して、再度チャレンジしてください。

3.offset モディファイアの指定

テンプレートに記述している MTPaginateNavigator タグに offset モディファイアを与えれば、前後に表示するページ数を指定できます。
指定しない場合のデフォルト値は2になっているので、前後2ページを表示します。

<MTPaginateNavigator offset="3">

とすれば、表示ページの前後3ページのナビゲーションを表示します。

4.動作確認状況

このカスタマイズで確認している MTPaginateNavigator タグのオプションは、

<$MTPaginateNavigator offset="n" style="links" format_all="All pages" place_all="before" separator=" | ">
<$MTPaginateNavigator offset="n" style="links" format_all="All pages" place_all="after" separator=" | ">

の2種類のみです。これ以外のパターンは未確認ですので、予めご容赦ください。

Comments [4] | Trackbacks [1]
2008年4月10日

アーカイブページのページ分割 for Movable Type 4.1

April 10,2008 12:03 AM
Tag:[, , , ]
Permalink

Movable Type 4.1 で、MTPaginate プラグインを用いたアーカイブページ(カテゴリーアーカイブ・月別アーカイブ等)のページ分割方法をご紹介します。
4.15でテンプレート構成が変わりそうなので、4.1(厳密には4.0~4.1)限定にしておきます。

ページ分割

このエントリーは「カテゴリーアーカイブと月別アーカイブのページ分割」を MT4.1 用に書き直したものです。

カスタマイズ手順には、PHP化の設定を含んでいます。PHP化の設定を行っていない場合は手順1~手順3を行った後、PHP化したメインページが正常に表示されることを確認してから、手順4以降のページ分割の設定を行ってください。

すでにPHP化が済んでいる場合は、手順5から開始してください。

1.ファイル・ディレクトリのパーミッションを変更

ファイルのパーミッションを変更するために、以下の作業を行ってください。
この作業を行うと、他のアーカイブページのファイルも同じパーミッションになるので、すべてのアーカイブのPHP化(拡張子を.phpにする)が必要です。

まず、mt-config.cgi を FTP ツールでダウンロードし、任意のエディタで開き、行末に以下の内容を追加してください。mt-config.cgi はアプリケーションディレクトリにあります。アプリケーションディレクトリとは、Movable Type をインストールしたディレクトリで、mt.cgi があるところです。

HTMLUmask 0072
DirUmask 0072
HTMLPerms 0777

修正後、mt-config.cgi を保存して、元のディレクトリにアップロードし、メインページを再構築してください。

この設定を行っておけば、出力されるメインページや他のHTMLファイルおよびディレクトリのパーミッションを常に705にします。パーミッションを 775 にする場合は、

HTMLUmask 0022
DirUmask 0022
HTMLPerms 0777

としてください。

2.拡張子の変更

ブログ管理画面の「設定」→「ブログの設定」→「公開」の一番下にある「アーカイブの拡張子」を html から php に変更して「変更を保存」をクリックします。

アーカイブの拡張子

3.XML宣言の修正

ページを XHTML文書、例えば XHTML1.0 として適合させている場合、前項と同じ画面の「テンプレートの内容」の1行目、またはテンプレートモジュールの「ヘッダー」の1行目(またはどこか)に、

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

という XML 宣言が記述されているケースがあります(記述されていなければこの項目はスキップしてください)。

PHP化を行うと、サーバではこのXML宣言の行をPHPスクリプトとして誤認識してしまい、次のようなPHPエラー

Parse error: parse error, unexpected T_STRING in ~(省略)~index.php on line 1

となるか、500エラーが発生するか、真っ白なページが表示される可能性があります。

このような場合、前述のXML宣言を下記の内容に置き換えてください(ご利用になる際、リストに含まれる改行はすべて除去してください。)。
なお、他のアーカイブページ等も PHP 化されていることを前提にしています。

<MTUnless name="system_template">
<? php echo('
</MTUnless>
<?xml version="1.0" encoding="utf-8"?>
<MTUnless name="system_template">
'); ? >
</MTUnless>

よく分からない場合や、ページが表示されない場合は、このカスタマイズを行う代わりに、XML宣言自体を削除してください。

4.プラグインのダウンロード

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

5.プラグインのインストール

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

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

ブログ管理画面の「システム」→「プラグイン」で MTPaginate が表示されれば、プラグインのインストールは完了です。

プラグイン一覧

6.ページ分割の設定

ブログ管理画面より、「デザイン」→「テンプレート」→「アーカイブテンプレート」→「ブログ記事リスト」を選択し、青色部分のページ分割用タグを設定します。デフォルトテンプレート/配布テンプレート共通です。

一見複雑にみえますが <MTEntries> の直前と </MTEntries> の前後に加えるだけです。

すべてのアーカイブにページ分割を設定する場合

    :
<MTIf name="datebased_archive">
  <MTPaginate>
    <MTPaginateContent max_sections="5">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
    <MTPaginateIfMultiplePages>
    <p 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_>
    </p>
    </MTPaginateIfMultiplePages>
  </MTPaginate>
<MTElse>
  <MTPaginate>
    <MTPaginateContent max_sections="5">
    <MTEntries limit="auto">
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
    <MTPaginateIfMultiplePages>
    <p 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_>
    </p>
    </MTPaginateIfMultiplePages>
  </MTPaginate>
</MTIf>
    :

日付ベースのアーカイブのみページ分割を設定する場合

    :
<MTIf name="datebased_archive">
  <MTPaginate>
    <MTPaginateContent max_sections="5">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
    <MTPaginateIfMultiplePages>
    <p 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_>
    </p>
    </MTPaginateIfMultiplePages>
  </MTPaginate>
<MTElse>
    <MTEntries limit="auto">
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
    </MTEntries>
</MTIf>
    :

日付ベース以外のアーカイブのみページ分割を設定する場合

    :
<MTIf name="datebased_archive">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
    </MTEntries>
<MTElse>
  <MTPaginate>
    <MTPaginateContent max_sections="5">
    <MTEntries limit="auto">
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
    <MTPaginateIfMultiplePages>
    <p 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_>
    </p>
    </MTPaginateIfMultiplePages>
  </MTPaginate>
</MTIf>
    :

日付ベース以外のアーカイブのみページ分割を設定する場合、MTEntries タグにある

limit="auto"

は削除した方がいいでしょう。
limit モディファイアに auto を設定した場合、表示するブログ記事数を、「設定」→「ブログの設定」→「ブログ記事」→「ブログ記事の表示数」にあわせます。

7.表示ブログ記事数の設定

リスト中の、

<MTPaginateContent max_sections="5">
<MTEntries>

にある

max_sections="5"

は、1ページに表示する最大ブログ記事数を設定します。ここでは5つのブログ記事表示する設定にしています。

ブログ記事数が30ある場合、max_sections が1ページに5ブログ記事ずつ表示する設定になっているので、ページは計6ページに分割して表示することになります。

8.スタイルの設定

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

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

設定が完了したら保存し、再構築します。
これで各アーカイブページがページ分割されていることを確認してください。

9.ページリンクの設定

ページリンクは冒頭のスクリーンショットのように表示され、各ページへのリンクと現在のページから前後のページへジャンプするのリンク、および全ページを一括表示するリンクがあります。

各ページのリンクの現在のページはテキスト表示になります。また一番最初のページは「<」を表示せず、最後のページは「>」を表示しません。

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

     :
<MTPaginate>
<MTPaginateIfMultiplePages>
<p 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_>
</p>
</MTPaginateIfMultiplePages>
    <MTPaginateContent max_sections="5">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
  </MTPaginate>
     :

と、青色部分を追加してください(すべてのアーカイブに適用させる場合は、上のリストを日付アーカイブベースのサブテンプレートと、それ以外のサブテンプレートの2ヶ所に設定してください)。上下両方にページリンクを付与することも可能です。

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

2008.04.25
カスタマイズ手順に PHP 化の手順を追加し、手順の順番を見直しました。

2008.08.06
1項の文言を一部削除しました。

Comments [22] | Trackbacks [2]
2008年4月 1日

メインページのページ分割 for Movable Type 4

April 1,2008 2:00 AM
Tag:[, ]
Permalink

Movable Type 4 で、MTPaginate プラグインを用いた、メインページのページ分割方法をご紹介します。

ページ分割

このエントリーは「トップページのページ分割」を MT4 用に書き直したものです。

以前、ご質問を頂いていたものの回答ですが、公開が大変遅くなってしまい、申し訳ございません。

カスタマイズ手順には、PHP化の設定を含んでいます。PHP化の設定を行っていない場合は手順1~手順4を行った後、PHP化したメインページが正常に表示されることを確認してから、手順5以降のページ分割の設定を行ってください。

すでにPHP化が済んでいる場合は、手順5から開始してください。

1.ファイル・ディレクトリのパーミッションを変更

ファイルのパーミッションを変更するために、以下の作業を行ってください。
この作業を行うと、他のアーカイブページのファイルも同じパーミッションになるので、すべてのアーカイブのPHP化(拡張子を.phpにする)が必要です。

まず、mt-config.cgi を FTP ツールでダウンロードし、任意のエディタで開き、行末に以下の内容を追加してください。mt-config.cgi はアプリケーションディレクトリにあります。アプリケーションディレクトリとは、Movable Type をインストールしたディレクトリで、mt.cgi があるところです。

HTMLUmask 0072
DirUmask 0072
HTMLPerms 0777

修正後、mt-config.cgi を保存して、元のディレクトリにアップロードし、メインページを再構築してください。

この設定を行っておけば、出力されるメインページや他のHTMLファイルおよびディレクトリのパーミッションを常に705にします。パーミッションを 775 にする場合は、

HTMLUmask 0022
DirUmask 0022
HTMLPerms 0777

としてください。

2.ファイル名の変更

テンプレートのメインページの編集画面を開き、「出力ファイル名」を 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.

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

3.XML宣言の修正

利用しているテンプレートによっては、メインページテンプレート、またはテンプレートモジュールの「ヘッダー」の1行目(またはどこか)に、

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

という XML 宣言が記述されているケースがあります(記述されていなければこの項目はスキップしてください)。

PHP化を行うと、サーバではこのXML宣言の行をPHPスクリプトとして誤認識してしまい、次のようなPHPエラー

Parse error: parse error, unexpected T_STRING in ~(省略)~index.php on line 1

となるか、500エラーが発生するか、真っ白なページが表示される可能性があります。

このような場合、前述のXML宣言を下記の内容に置き換えてください(ご利用になる際、リストに含まれる改行はすべて除去してください。)。
なお、他のアーカイブページ等も PHP 化されていることを前提にしています。

<MTUnless name="system_template">
<? php echo('
</MTUnless>
<?xml version="1.0" encoding="utf-8"?>
<MTUnless name="system_template">
'); ? >
</MTUnless>

よく分からない場合や、ページが表示されない場合は、このカスタマイズを行う代わりに、XML宣言自体を削除してください。

4.index.html の削除

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

http://~/

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

インデックステンプレートにはファイル名変更後に元ファイルを削除する機能はありません。

5.プラグインのダウンロード

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

6.プラグインのインストール

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

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

ブログ管理画面の「システム」→「プラグイン」で MTPaginate が表示されれば、プラグインのインストールは完了です。

プラグイン一覧

7.ページ分割の設定

ブログ管理画面より、「デザイン」→「テンプレート」→「メインページ」を選択し、ページ分割用タグを設定します。

テンプレート編集画面のテキストエリアに、リストのように青色部分を追加します。一見複雑にみえますが <MTEntries> の直前と </MTEntries> の前後に加えるだけですので MTEntries という文字列を検索して編集すると良いでしょう。

デフォルトテンプレート/配布テンプレート共通

    :
<MTPaginate>
<MTPaginateContent max_sections="5">
<MTEntries>
    <$MTEntryTrackbackData$>
    <$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<div class="paginate">
<MTPaginateIfPreviousPage_>
<a href="<$MTPaginatePreviousPageLink$>"><</a>
</MTPaginateIfPreviousPage_>
<$MTPaginateNavigator style="links" format_all="All pages" place_all="after" separator=" | ">
<MTPaginateIfNextPage_>
<a href="<$MTPaginateNextPageLink$>">></a>
</MTPaginateIfNextPage_>
</div>
</MTPaginateIfMultiplePages>
</MTPaginate>
    :

7.1 表示ブログ記事数の設定

リスト中の、

<MTPaginateContent max_sections="5">
<MTEntries>

にある

max_sections="5"

は、1ページに表示する最大ブログ記事数を設定します。ここでは5つのブログ記事表示する設定にしています。

また全ページ合計の表示ブログ記事数は、「設定」→「ブログの設定」→「ブログ記事」→「ブログ記事の表示数」で設定します。

「ブログ記事の表示数」を30にした場合、max_sections が1ページに5ブログ記事ずつ表示する設定になっているので、トップページは計6ページに分割して表示することになります。「ブログ記事の表示数」の値が max_sections より小さい場合はページ分割が行われません。

7.2 スタイルの設定

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

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

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

8.ページリンクの設定

ページリンクは冒頭のスクリーンショットのように表示され、各ページへのリンクと現在のページから前後のページへジャンプするのリンク、および全ページを一括表示するリンクがあります。

各ページのリンクの現在のページはテキスト表示になります。また一番最初のページは「<」を表示せず、最後のページは「>」を表示しません。

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

     :
<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>
   <$MTEntryTrackbackData$>
   <$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
</MTPaginate>
     :

としてください。ページの上下にページリンクを付与することも可能です。

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

2008.04.25
カスタマイズ手順に PHP 化の手順を追加し、手順の順番を見直しました。

Comments [14] | Trackbacks [6]
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