📃

【Movable Type】記事一覧で連番を付与する

に公開

概要

記事を出力する際に、記事に降順の連番を付与するコード例です。
以下のイメージです。

※公開されている記事が全部で10件の場合

10: いちばんあたらしい記事
9: 2番目にあたらしい記事
8: 3番目にあたらしい記事
7: 4番目にあたらしい記事
6: 5番目にあたらしい記事
5: 6番目にあたらしい記事
.
.
.

コード例

以下の例では記事(MTEntries)の一覧を出力しています。

<!-- MTML -->
<mt:Entries lastn="0">
  <mt:EntriesCount setvar="entryCount">
  <mt:EntriesHeader>
    <ul>
  </mt:EntriesHeader>
    <mt:SetVar name="count" value="$entryCount" op="--">
    <li><$mt:Var name="count"$>: <$mt:EntryDate format="%Y-%m-%d"$> <$mt:EntryTitle$></li>
  <mt:EntriesFooter>
    </ul>
  </mt:EntriesFooter>
</mt:Entries>

<!-- 出力結果 -->
<ul>
  <li>10: 2025-05-01 サンプル記事10</li>
  <li>9: 2025-04-29 サンプル記事9</li>
  <li>8: 2025-04-25 サンプル記事8</li>
  <li>7: 2025-04-20 サンプル記事7</li>
  <li>6: 2025-04-15 サンプル記事6</li>
  <li>5: 2025-04-11 サンプル記事5</li>
  <li>4: 2025-04-09 サンプル記事4</li>
  <li>3: 2025-04-07 サンプル記事3</li>
  <li>2: 2025-03-20 サンプル記事2</li>
  <li>1: 2025-03-07 サンプル記事1</li>
</ul>

MTEntriesのループの中で、出力記事件数を表示するMTEntriesCountの値を、setvarモディファイアを付与して変数entryCountに格納します。

<mt:EntriesCount setvar="entryCount">

さらにentryCountを値として、変数countに格納します。値にするentryCountは、先頭に$をつけます。この変数にはopモディファイアを付与し、値を--(またはdec、デクリメント)とします。
こうすることで、entryCount(今回の例では10)からはじまる降順の連番を出力することが可能になります。

<mt:SetVar name="count" value="$entryCount" op="--">

連番の出力部分は<$mt:Var name="count"$>です。

なお、opモディファイアの値を-としてしまうと、ループ処理のたびにentryCountの数値分マイナスにした値が変数countに格納されて出力されるので、10, 0, -10, -20, ...という出力になってしまいます。

公式リファレンス

MT

PowerCMS


Discussion