アーカイブテンプレート「ブログ記事リスト」の表示数コントロール

2008年2月10日

MT4(MovableType)のブログ記事リストに表示される数は、デフォルトテンプレートの設定では、トップページに表示される数と同じです。

つまり、「設定」-「ブログの設定」-「ブログ記事」メニューの
 画面設定のブログ記事の表示数
に設定された数が表示されることになります。

具体的にブログ記事リストテンプレートでは、

<MTIf name="datebased_archive">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
    </MTEntries>
<MTElse>
    <MTEntries limit="auto">
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
    </MTEntries>
</MTIf>

赤ラインの部分で表示数の制御がかかっています。

<MTEntries limit="auto">

MTテンプレートタグのブロックタグMTEntriesのモディファイアの一つであるlimitでコントルールされています。

MT4から新設されたモディファイアで、MT3ではlastn、daysを利用していました。
autoを指定すると、この2つの使い分けを、「ブログの設定」でブログ記事の表示数の選択で「ブログ記事」か「日数」を指定したほうで出力してくれるという機能ですね。

そのため、今までどおりすべての記事を表示したい場合は、モディファイアのlimitを除くことですべて出力されますし、その他のモディファイアを設定することで希望の表示数のコントルールが可能になります。

limit=”N”
lastn モディファイアがブログ記事の作成日順に指定件数表示するのに対し、limit モディファイアは、指定された条件でフィルタリングした結果を指定数を最大件数として表示します。

値に auto を指定した場合、[ブログの設定] で設定した表示件数または、日数で出力します。

テンプレートタグリファレンス引用:MovableType.jp

ちなみに、ブログ記事テンプレートを4種のアーカイブ出力制御をかけている変数で
“name=datebased_archive”に該当しないものが、カテゴリアーカイブ、ユーザー別アーカイブだと推測されますが、どこにもMTSetVarされていない。
定義されているところを追及したくなりますが、探してもない。
結局、テンプレート上にはないようで、小粋空間さんが「予約変数一覧 for Movable Type 4(その1)」でソースを解析してくれてなんとか納得した次第です。

datebased_archiveに該当するテンプレートは、日別アーカイブ(年、月、日)に該当するものだと確認できました。
この表があれば、テンプレートカスタマイズにも役立てます。
MovableType.jpでもちゃんと公開して欲しいものですねぇ~