Movable Type のページ分割でページ番号を title 要素に表示する

Movable Type のページ分割でページ番号を title 要素に表示する

Posted at September 2,2009 1:55 AM
Tag:[MovableType, Paginate]

Movable Type の Paginate プラグインでページ分割を行っている場合に、title 要素や meta 要素に現在のページ番号を表示するカスタマイズです。

下のキャプチャ画面では「No.3」という表示が、現在のページ番号を示しています。

ページ分割でページ番号を title 要素に表示する

ご質問を頂きましたので本エントリーで情報展開致します。

1.失敗例

例えば、「既定のブログ」のメインページで、title 要素と meta 要素に以下のようなページ分割用のテンプレートタグを追加(青色部分)しても、ページ番号は表示されないようです。

なお、この場合、そもそものページ分割用のテンプレートタグは「メインページのページ分割 for Movable Type 4」にしたがって設定を行なっています(赤色部分)。

...前略...
<head>
    <$mt:Include module="HTMLヘッダー"$>
    <link rel="EditURI" type="application/rsd+xml" title="RSD" href="<$mt:Link template="rsd"$>" />
    <meta name="description" content="Foo No.<MTPaginate><$MTPaginateCurrentPage$></MTPaginate>" />
    <title><$mt:BlogName encode_html="1"$> No.<MTPaginate><$MTPaginateCurrentPage$></MTPaginate></title>
</head>
...中略...
<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>
...後略...

2.カスタマイズ

ページ番号を適正に表示するには、元のカスタマイズの MTPaginate タグの開始タグを削除し(赤色部分)、ページ番号を表示したい部分を含むような形で MTPaginate で括り直します(2行目
の青色部分)。また、title 要素や meta 要素に与えていた MTPaginate タグも不要になり、MTPaginateCurrentPage タグのみ与えます(青色部分)。

...前略...
<MTPaginate>
<head>
    <$mt:Include module="HTMLヘッダー"$>
    <link rel="EditURI" type="application/rsd+xml" title="RSD" href="<$mt:Link template="rsd"$>" />
    <meta name="description" content="Foo No.<$MTPaginateCurrentPage$>" />
    <title><$mt:BlogName encode_html="1"$> No.<$MTPaginateCurrentPage$></title>
</head>
...中略...
<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>
...後略...

言い換えると、テンプレート全体を MTPaginate タグで括っておき、本来分割したい箇所やページナビゲーションを行ないたい部分に、それらに対応したページ分割用のテンプレートタグを記述しておくとよいでしょう。

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


コメント

もはや時代の変化が早すぎてついていけません!!
OTL

もっと前からあればよかった機能と思う反面、それに対してこれから変更できるのだろうかと不安しかありません。

また自分の間違いの訂正だけに時間を掛けそうで困りますww
小粋空間万歳。

[1] Posted by ビリー・トランクス : September 3, 2009 2:58 AM

コメント場所間違えました。ごめんなさい。OTL
MTOS 5.0 に対してです。

[2] Posted by ビリー・トランクス : September 3, 2009 3:22 AM

>ビリー・トランクスさん
こんばんは。
コメントありがとうございました。
まあ、マイペースで頑張りましょう!

[3] Posted by yujiro logo : September 3, 2009 7:45 PM

はい、出来るだけ。
あからさまに時代の変化の方が早そうです…

とりあえず、自分で出来ることを先にやってみます。(ToT)ノシ

[4] Posted by ビリー・トランクス : September 4, 2009 6:39 PM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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