« 日別アーカイブやめました! | メイン | 皮膚科デビュー »

20050320Sunday

インデックスにMTPaginateの導入

パパが「お前のBLOGには“次のページ”とかいうリンクないの?超不便!」とかぬかしました。以前使っていたJUGEMや他のBLOGサービスには大抵ついている機能だったのですが、MTにはありません。

そこでインデックスページにページ分割プラグイン「MTPaginate」を導入してみることにしました。「MTPaginate」は1枚のページを複数に分割してくれるのですが、その1枚というのがネックとなり、この思いつきは結構大変なことに・・・

インデックスから全てのエントリーを「次へ」「次へ」とめくっていくには、インデックスにすべてのエントリーが存在しなければいけません。これを新規エントリーする度に、コメントをいただく度にリビルドしていたら負荷がトンデモないし、閲覧するにも全エントリーのつまったでっかいファイルをダウンロードしないといけないわけで、あまりよい策とは言いがたい・・・。

そこでインデックスには今月分のエントリーを表示させることにしました。その先が見たい場合は月別アーカイブを覗けばよいという寸法です。

今月分ということでMTEntriesタグにつけるlastn属性・・・これを31にすると「今月分」でなく「最新31個」となります。他の属性でも「今月分」は再現できなさそうだったのでMTEntriesをMTArchiveListタグで囲んでみます。そして属性を「archive_type="Monthly" lastn="1"」つまり「月別アーカイブの最新1個」と設定。これでインデックスには今月分の記事がだだーっと表示されます。

そしてMTPaginateを動かすためにタグを設定。1ページにh2タグ7個分(1週間分)のデータを表示させ、ページ下部には「ページ番号|次のページへ→」というリンクを表示させました。

<MTPaginate>

<MTPaginateContent max_sections="7" section_start_tag="h2">

<MTArchiveList archive_type="Monthly" lastn="1">
<MTEntries>
 ~中略(記事部分)~
</MTEntries>
</MTArchiveList>

</MTPaginateContent>

<MTPaginateIfMultiplePages>
<$MTPaginateNavigator$> | <a href="<$MTPaginateNextPageLink$>">次の10件へ→</a>
</MTPaginateIfMultiplePages>

</MTPaginate>

問題は・・・月初がえらく寂しいことかな(笑)


   

コメントする