トップページへ

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

小粋空間 » Movable Type » モディファイア » MTテンプレートタグのlastnモディファイアとlimitモディファイアの違い

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を設定するだけであれば動作に違いはありません。

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

サンプルとして、

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

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

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

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

test3
test4
test5

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

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

となるためです。

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

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

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

test1
test2
test3

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

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

を抽出するためです。

4.まとめ

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

なお、モディファイアは実行される順番に記載した方は間違いないと思いますので、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>

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

« 前の記事へ

次の記事へ »

トップページへ