MTテンプレートタグのlastnモディファイアとlimitモディファイアの違い

MTテンプレートタグのlastnモディファイアとlimitモディファイアの違い

Posted at July 2,2015 1:55 AM
Tag:[Modifier, MovableType]

MTテンプレートタグのlastnモディファイアとlimitモディファイアの違いについて紹介します。

ちなみに2007年に公式サイトで分かりやすい記事が投稿されています。

1.lastnモディファイアとは

lastnは、最新の記事を抽出するときに利用するモディファイアで、値に表示したい件数を指定します。

次のように指定すれば、ブログ記事から最新の3件の記事タイトルを表示します。

<mt:Entries lastn="3">
  <$mt:EntryTitle$>
</mt:Entries>

2.limitモディファイアとは

limitは表示件数を指定するときに利用するモディファイアで、値に表示したい件数を指定します。

次のように指定すれば、ブログ記事から最新の3件の記事タイトルを表示します。

<mt:Entries limit="3">
  <$mt:EntryTitle$>
</mt:Entries>

なお、値にautoを設定した場合、管理画面の「設定」→「投稿」→「表示される記事数」の設定値が適用されます。

<mt:Entries limit="auto">
  <$mt:EntryTitle$>
</mt:Entries>

3.lastnモディファイアとlimitモディファイアと違い

1項および2項の説明より、テンプレートタグにlastnまたはlimitを設定するだけであれば動作に違いはありません。

違いが出るのは、他のモディファイアと組み合わせた場合です。

サンプルとして、

  • test5(2015/7/1)
  • test4(2015/6/1)
  • test3(2015/5/1)
  • test2(2015/4/1)
  • test1(2015/3/1)

という5つの記事があるとします(カッコ内は公開日)。

まず、1項のテンプレートにsort_order="ascend"を加えて実行します。

<mt:Entries sort_order="ascend" lastn="3">
  <$mt:EntryTitle$>
</mt:Entries>

実行結果は下記のとおりです。

test3
test4
test5

上記の結果になるのは、先にlastnモディファイアで最新3件の記事、

  • test5(2015/7/1)
  • test4(2015/6/1)
  • test3(2015/5/1)

を抽出し、そのあとでsort_orderを実行し、

  • test3(2015/5/1)
  • test4(2015/6/1)
  • test5(2015/7/1)

となるためです。

次に、2項のテンプレートにsort_order="ascend"を加えて実行します。

<mt:Entries sort_order="ascend" limit="3">
  <$mt:EntryTitle$>
</mt:Entries>

実行結果は下記のとおりです。

test1
test2
test3

上記の結果になるのは、先にsort_orderモディファイアで、

  • test1(2015/3/1)
  • test2(2015/4/1)
  • test3(2015/5/1)
  • test4(2015/6/1)
  • test5(2015/7/1)

という並び替えが行われ、そのあとlimitモディファイアで

  • test1(2015/3/1)
  • test2(2015/4/1)
  • test3(2015/5/1)

を抽出するためです。

4.まとめ

lastnとlimitの使い分けは下記のとおりです。

  • 最新のものを抽出してから加工したい:limitを使用
  • 加工してから最新のものを抽出したい:lastnを使用
  • 加工しないのであればどちらも同じ効果

なお、モディファイアは実行される順番に記載した方は間違いないと思いますので、lastnについては各モディファイアの先頭、

<mt:Entries lastn="3" sort_by="title" sort_order="ascend">
  <$mt:EntryTitle$>
</mt:Entries>

limitについては各モディファイアの最後、

<mt:Entries sort_by="title" sort_order="ascend" limit="3" >
  <$mt:EntryTitle$>
</mt:Entries>

という順序で書いた方がよいでしょう。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


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

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

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

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