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

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

Posted at December 29,2008 1:55 AM
Tag:[MovableType, Paginate, Plugin]

Movable Type 4 でコメントのページ分割を行うカスタマイズです。ご質問を頂きましたので本エントリーにて紹介致します。

デフォルトテンプレートへの適用例
PageBute プラグインによるコメントのページ分割(デフォルトテンプレートに適用)

小粋空間テンプレートへの適用例
PageBute プラグインによるコメントのページ分割(小粋空間テンプレートに適用)

ここでは、スカイアークシステムが配布している PageBute プラグインによるページ分割方法を紹介します。

1.注意事項

このエントリーで紹介する方法は、投稿されたコメントを指定件数ごとに分割するだけであり、分割されたブログ記事ページには同じ内容のブログ記事が表示されます。

言い換えると、SEO 的な考慮(異なるURLに同じ内容が重複していることに対する考慮)は何も行っていません。

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

下記のリンクからプラグインアーカイブ(2008年12月現在は PageBute3.01.zip)をダウンロードし、任意のフォルダに保存してください。

PageBute

2.インストール

プラグインアーカイブを解凍し、中にある PageBute.pl を plugins ディレクトリにアップロードしてください。

ブログ管理画面より「システム」→「プラグイン」でプラグイン一覧を表示し、次のように表示されればOKです。

プラグイン一覧

3.テンプレートのカスタマイズ

3.1 デフォルトテンプレートの場合

「コメント」テンプレートモジュールに青色部分を追加します。赤色部分の MTCommentsHeader タグは削除してください。赤色の「5」は1ページに表示したい件数なので、適宜変更してください。

...前略...
    <mt:Ignore>
    <!-- Display comments -->
    </mt:Ignore>
<h2 class="comments-header">コメント</h2>
<mt:pageContents count="5">
    <mt:Comments>
        <mt:CommentsHeader>
    <h2 class="comments-header"><$mt:EntryCommentCount singular="コメント(1)" plural="コメント(#)" none="コメント(0)"$></h2>
    <div class="comments-content">
        </mt:CommentsHeader>
        <div id="comment-<$mt:CommentID$>" class="comment<mt:IfCommentParent> comment-reply</mt:IfCommentParent>">
            <div class="inner">
                <div class="comment-header">
                    <div class="asset-meta">
                        <span class="byline">
                            <$mt:CommentAuthorIdentity$>
        <mt:IfCommentParent>
                            <span class="vcard author"><$mt:CommentAuthorLink$></span>から<a href="<mt:CommentParent><$mt:CommentLink$></mt:CommentParent>"><mt:CommentParent><$mt:CommentAuthor$></mt:CommentParent></a>への返信
        <mt:Else>
                            <span class="vcard author"><$mt:CommentAuthorLink$></span>
        </mt:IfCommentParent>
                            | <a href="<$mt:CommentLink$>"><abbr class="published" title="<$mt:CommentDate format_name="iso8601"$>"><$mt:CommentDate$></abbr></a>
        <mt:IfCommentsAccepted>
                            | <$mt:CommentReplyToLink$>
        </mt:IfCommentsAccepted>
                        </span>
                    </div>
                </div>
                <div class="comment-content">
                    <$mt:CommentBody$>
                </div>
            </div>
        </div>
        <mt:CommentsFooter>
    </div>
        </mt:CommentsFooter>
<mt:pageSeparator />
    </mt:Comments>
</mt:pageContents>
<div class="content-nav">
<mt:ifPageBefore>
  <span><$MTPageBefore delim="&#65308;"$></span>
</mt:ifPageBefore>
<mt:pageLists />
<mt:ifPageNext>
  <span><mt:pageNext delim="&#65310;" /></span>
</mt:ifPageNext>
</div>
 
    <mt:Ignore>
    <!-- Display commenting form if entry/page is accepting comments -->
    </mt:Ignore>
...後略...

3.2 小粋空間テンプレートの場合

「コメント」テンプレートモジュールに青色部分を追加します。赤色部分の MTCommentsHeader タグは削除してください。赤色の「5」は1ページに表示したい件数なので、適宜変更してください。

<MTIfCommentsActive>
<div id="comments">
 
   <MTIf name="comment_preview_template">
   <$MTInclude module="コメント入力フォーム"$>
   </MTIf>
 
<h3 class="comments-header">コメント</h3>
<mt:pageContents count="5">
   <MTComments>
 
   <MTCommentsHeader><h3 class="comments-header">コメント</h3></MTCommentsHeader>
      <$MTInclude module="コメント詳細"$>
   <MTCommentsFooter></MTCommentsFooter>
 
<mt:pageSeparator />
   </MTComments>
</mt:pageContents>
<div class="content-nav">
<mt:ifPageBefore>
  <span><$MTPageBefore delim="&#65308;"$></span>
</mt:ifPageBefore>
<mt:pageLists />
<mt:ifPageNext>
  <span><mt:pageNext delim="&#65310;" /></span>
</mt:ifPageNext>
</div>
 
   <MTUnless name="comment_preview_template">
   <$MTInclude module="コメント入力フォーム"$>
   </MTUnless>
 
</div>
</MTIfCommentsActive>

4.その他

同様のページ分割は Paginate プラグインでも可能です。

HeavenWolf - サイド掲示板のコメントをページ分割
関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


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

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

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

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