ダイナミックパブリッシングによるページ分割

ダイナミックパブリッシングによるページ分割

Posted at August 6,2009 12:55 AM
Tag:[Customize, DynamicPublishing, MovableType, Paginate]

Movable Type 4.2 ではダイナミックパブリッシングによるページ分割が行なえます。

カテゴリーアーカイブのページナビゲーション
カテゴリーアーカイブ

月別アーカイブのページナビゲーション
月別アーカイブ

メインページのページナビゲーション
メインページ

本エントリーでは、以下の解説を元に「既定のブログ」へのページ分割設定方法を紹介します。

1..htaccess の変更(4.2 以前からダイナミックパブリッシングを導入している場合)

参考とした元記事では 以下のように .htaccess の変更を行なっていますが、4.2 からダイナミックパブリッシングの運用を開始している場合は設定不要です。

変更前

RewriteRule ^(.*)$ $mtview_server_url [L,QSA]

変更後

RewriteRule ^(.*)(\?.*)?$ $mtview_server_url$2 [L,QSA]

2.「ブログ記事リスト」アーカイブテンプレートにページナビゲーションの追加

ブログ記事管理画面の「デザイン」→「テンプレート」→「カテゴリ別ブログ記事リスト(または月別ブログ記事リスト)」をクリックし、以下のサブテンプレート(青色部分)を追加します。

...前略...
    <div class="content-nav">
        <mt:ArchivePrevious><a href="<$mt:ArchiveLink$>">&laquo; <$mt:ArchiveTitle$></a> |</mt:ArchivePrevious>
        <a href="<$mt:Link template="main_index"$>">メインページ</a> |
        <a href="<$mt:Link template="archive_index"$>">アーカイブ</a>
        <mt:ArchiveNext>| <a href="<$mt:ArchiveLink$>"><$mt:ArchiveTitle$> &raquo;</a></mt:ArchiveNext>
    </div>
 
    <div class="content-nav">
        <mt:IfPreviousResults><a href="<mt:PreviousLink encode_html="1">" rel="prev">&laquo; Previous</a>&nbsp;&nbsp;</mt:IfPreviousResults>
        <mt:PagerBlock>
            <mt:IfCurrentPage><mt:Var name="__value__"><mt:Else><a href="<mt:PagerLink encode_html="1">"><mt:Var name="__value__"></a></mt:IfCurrentPage>
            <mt:unless name="__last__">&nbsp;</mt:unless>
        </mt:PagerBlock>
        <mt:IfMoreResults>&nbsp;&nbsp;<a href="<mt:NextLink encode_html="1">" rel="next">Next &raquo;</a>
        </mt:IfMoreResults>
    </div>
 
</div>
...後略...

3.アーカイブテンプレートの修正

1項の編集画面を開いた状態で、MTEntries タグに offset="auto" を追加し、limit="xx" でページ単位の表示数を設定します。$limit はそのまま使っても構いません。

変更前

<mt:Entries limit="$limit">

変更後

<mt:Entries limit="10" offset="auto">

これでアーカイブページにアクセスすればページ分割が行なえると思います。

なお、カテゴリアーカイブについては、MTEntriesWithSubCategories タグでも動作確認できました。

4.メインページについて

メインページもブログ記事リストのアーカイブページと同様の方法でページ分割可能ですが、ブログ内のすべてのブログ記事がページ分割対象となるため、カスタマイズが必要です(別の機会にエントリーしたいと思います)。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)