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を設定するだけであれば動作に違いはありません。
違いが出るのは、他のモディファイアと組み合わせた場合です。
サンプルとして、
- 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>
という順序で書いた方がよいでしょう。
- MTのEntryBodyタグのwordsモディファイアについて
- strip_tagsモディファイアとremove_htmlモディファイアの違い