MovableTypeにおいて問題となる点として、アーカイブページ(カテゴリや日付)です。
エントリ数が多くなると1枚のページで全ての属するエントリが表示されてしまい、ページ表示がかなり遅くなってしまいますし、稀にブラウザが落ちてしまうこともあります。
現在では「MTPagenate」というページ分割をしてくれるプラグインがあって、これを利用すれば実現はできるのですが、PHPが動く環境でないとダメという制約があります。そもそもPHPが動くのならダイナミックページ機能を使えばいいわけですし、タグの書き方もそこそこ手間がかかってしまいます。
ここでひとつ、
静的なHTMLページで画面分割できてページ送り機能が使えれば問題は解決できるのでは??
という思いがありまして、このようなプラグインを作りました。
- 概要・注意事項
静的なHTMLページを分割して生成、ページ送り機能をつけられるようにします。
まだ開発途中ですので利用においては各自の責任のもとに利用していただき、また、利用にあたってはデータのバックアップ等を行うようにしてください。現状では以下のアーカイブタイプのみに対応しています。
- カテゴリアーカイブ
- 日付アーカイブ
- 週別アーカイブ
- 月別アーカイブ
また、MovableTypeのバージョンは3.3以上となっておりますのでご注意ください。
- ダウンロード
こちらのダウンロードページからダウンロードしてください。
- インストール
MovableTypeインストールディレクトリ内の「plugins」ディレクトリにダウンロードしたファイルを展開してください。「ArchivePage」というディレクトリ名で展開されます。
- 利用方法
各ブログの設定画面にあります「プラグイン」リンクを選択しますと、「ArchivePage」が表示されていると思います。表示されていない場合は正常にインストールができていませんのでインストール場所等確認してください。
「ArchivePage」の「設定を表示」リンクをクリックしますと、各アーカイブページでの表示させたいエントリ数設定ができますので適切な値を入力してください。0を設定した場合はページ分割はされません。次に各アーカイブテンプレートページを「5. タグ一覧」を参照して書き込んでください。「MTArchive...」のタグなどと似たような感じで利用ができるようにしてあります。また、「6. サンプル」も参照してください。
- タグ一覧
- MTIfArchivePage
- テンプレートがページ分割設定されているときの条件タグです。
- MTArchivePageFirst
- ページ分割した際の最初のページ情報を出力する条件タグです。
- MTArchivePagePrevious
- ページ分割した際の前のページ情報を出力する条件タグです。
- MTArchivePageNext
- ページ分割した際の次のページ情報を出力する条件タグです。
- MTArchivePageLast
- ページ分割した際の最後のページ情報を出力する条件タグです。
- MTArchivePageLink
- 分割したページへのリンクを出力するタグです。
「MTArchivePageFirst」、「MTArchivePagePrevious」、「MTArchivePageNext」、「MTArchivePageLast」内で利用できます。 - MTArchivePageTitle
- 分割したページのタイトルを出力するタグです。
「MTArchivePageFirst」、「MTArchivePagePrevious」、「MTArchivePageNext」、「MTArchivePageLast」内で利用できます。 - text="ラベル文字列"
- 出力するタイトルを設定できます。
- MTArchivePager
- ページ送りリンクを出力するタグです。
- class="スタイルクラス名"
- size="ページ表示数"
- separator="区切り文字"
- サンプル
スタイルシート、テキストなどの設定はご自身の環境にあわせてください。<MTIfArchivePage>
<div class="pagelinks">
<MTArchivePageFirst>
<a href="<$MTArchivePageLink$>"><$MTArchivePageTitle text="最初"$></a>
</MTArchivePageFirst>
<MTArchivePagePrevious>
<a href="<$MTArchivePageLink$>"><$MTArchivePageTitle text="前のページ"$></a>
</MTArchivePagePrevious>
<$MTArchivePager class="blink"$>
<MTArchivePageNext>
<a href="<$MTArchivePageLink$>"><$MTArchivePageTitle text="次のページ"$></a>
</MTArchivePageNext>
<MTArchivePageLast>
<a href="<$MTArchivePageLink$>"><$MTArchivePageTitle text="最後"$></a>
</MTArchivePageLast>
</div>
</MTIfArchivePage>上記のようにしますと、以下のようなHTMLが展開されるはずです。
<div class="pagelinks">
<a href="アーカイブURL/index.html">最初</a>
<a href="アーカイブURL/index.html" class="blink">1</a>,
<a href="アーカイブURL/index_1.html">2</a>,
<a href="アーカイブURL/index_2.html">3</a>
<a href="アーカイブURL/index_1.html">次のページ</a>
<a href="アーカイブURL/index_2.html">最後</a>
</div>
