MovableType PageButeでページ分割

2010年11月30日 火曜日 16時17分

MovableTypeには記事が多くなった時に、例えば5件の記事を表示させたら次のページにリンクさせて、そっちに続きを表示って機能が無いんだよね。
ほっといたらアーカイブでしか1ページから溢れた記事を読めなくなっちゃうの。
それじゃ〜不便だから、ページ下部に分割したページのリンクが欲しいよね。
それをやってくれるのがPageButeと言うプラグイン。
↓こう言うのね。

下のソースはブログトップページのブログ記事を表示させてる部分のソースだけど(所謂、ブログ記事の概要)、そのソースの赤い部分がPageButeの記述です。
下で解説をするので、参考になるなら幸いです。
が、基本自分の備忘録なので解釈が間違ってるやもしれません。

<div id=”content”>
<mt:pageContents count=”5″>
<mt:Entries>
 <div class=”post”>
  <h2><a href=”<$mt:EntryPermalink$>”><$mt:EntryTitle$></a></h2>
  <p class=”p_day”><$mt:Entrydate format=”%Y年%m月%d日%H時%M分%A”$></p>

  <div class=”honbun”><$mt:EntryBody$></div>

  <div class=”entrymore”>
  <mt:If tag=”mt:EntryMore”><a href=”<$mt:EntryPermalink$>#more”>続きを読む</a></mt:If>   </div>

  <$mt:Include module=”ポストインフォ”$>

 </div>

<$mt:PageSeparator$>
</mt:Entries>
</mt:pageContents>

<div id=”content_nav”>
 <mt:ifPageBefore>
  <mt:IfPageFirst><$mt:PageFirst delim=”TOP”$></mt:IfPageFirst>
  <$mt:PageBefore delim=”PREV”$>
 </mt:ifPageBefore>

 <mt:pageLists delim=” ” show_always=”0″>

 <mt:ifPageNext><$mt:pageNext delim=”NEXT”$></mt:ifPageNext>
 <mt:IfPageLast><$mt:PageLast delim=”LAST”$></mt:IfPageLast> </div>

</div>

さて、解説。
上記ソースの青い部分がPageButeの記述です。

<mt:pageContents count=”5″>〜</mt:pagecontents>
ブログ記事をどの範囲で区切るかを指定。
つまりこの場合、<mt:Entries>〜</mt:Entries>で囲まれたブログタイトル、本文、続きを読む、ポストインフォを一括りとすると言う事。
「count=”5″」で、このタグで囲まれたその部分を5件繰り返し1ページに表示させ、それ以降は2ページ目にすると言う指定。
真ん中に出てくる<$mt:PageSeparator$>は、最後の5件目(count=”5″の場合)のどこで分割するかを指定しているみたい。
<$mt:Include module=”ポストインフォ”$>の前に入れたら5件目のポストインフォが表示されなかったからね。
<mt:Entries>と<mt:PageContents>の中に記述するのが正解みたい。

で、下のソースがPageButeで自動的にページ分割されるリストメニューの記述。

 <mt:ifPageBefore>
  <mt:IfPageFirst><$mt:PageFirst delim=”TOP”$></mt:IfPageFirst>
  <$mt:PageBefore delim=”PREV”$>
 </mt:ifPageBefore>

 <mt:pageLists delim=” ” show_always=”0″>

 <mt:ifPageNext><$mt:pageNext delim=”NEXT”$></mt:ifPageNext>
 <mt:IfPageLast><$mt:PageLast delim=”LAST”$></mt:IfPageLast>

</div>

<mt:ifPageBefore>〜</mt:ifPageBefore>
は、もし今居るページの前にページが有った場合、その中の記述が表示されますというもの。
この場合は、<mt:IfPageFirst><$mt:PageFirst delim=”TOP”$></mt:IfPageFirst><$mt:PageBefore delim=”PREV”$>が表示されますよと。
で、その中の部分もさらに条件分岐されていて、<mt:ifPageFirst>〜<mt:ifPageFirst>は、自分のいるページが最初のページじゃなかったら、その中に記述している<$mt:PageFirst delim=”TOP”$>で最初のページにリンクし、その時のリンクテキストは「TOP」ですよとなる。
<$mt:PageBefore delim=”PREV”$>は、今居るページの1ページ前へのリンクを張りますという意味で、その時のリンクテキストは「PREV」ですよの意味。
ここまでが『今居る位置が最初のページじゃなかった場合に表示させる記述』となる。

<mt:PageLists delim=” ” show_always=”0″>
は、各ページへのリンクを出力します。
「delim=”|”」は、ページ番号とページ番号との間を何で仕切るかを指定。
↑の場合は「|」にしてあります(上記のサンプル画像では半角スペースになっています)。
「show_always=”0″」は、記事数が少なくてページ分割の必要が無い場合は出力しませんよと言う意味。

<mt:ifPageNext><$mt:PageNext delim=”NEXT”$></mt:ifPageNext>
は、次のページがあった場合<$mt:PageNext$>で次のページへのリンクを出力し、そのリンクテキストは「NEXT」ですと言う意味。

<mt:ifPageLast><$mt:PageLast delim=”Last”$></mt:ifPageLast>
は、複数のページがある場合、最後のページへのリンクを<$mt:PageLast delim=”LAST”$>で出力し、そのリンクテキストは「AST」ですよと言う意味。

これでページ分割は終了。
あ、インストール方法はPageButeでググッてダウンロードして、サーバーのMovableTypeフォルダ内のpluginの中に放りこめばOKです。

関連記事

コメントさんきゅ

コメントはまだありません...(つд・)エーン

コメントどーぞ

© 2010 - 2024 南国スキーぶろぐ