サイト制作に関するメモ書き

HOME > CMS > Movable Type > Movable Typeでカテゴリ一覧の並び順を変更する

Movable Typeでカテゴリ一覧の並び順を変更する

カテゴリ一覧の並び順がうまく反映されないことがあったので、並び順の変更方法を調べてみました。

サンプルコード

以下のような順番でカテゴリを登録してみます。

  • 名前:カテゴリB
    出力名:catb
    id:7
  • 名前:カテゴリC
    出力名:catc
    id:12

    • 名前:カテゴリC-1
      出力名:catc1
      id:14
  • 名前:カテゴリA
    出力名:cata
    id:8

    • 名前:カテゴリA-2
      出力名:cata2
      id:16
    • 名前:カテゴリA-1
      出力名:cata1
      id:15

MtCategoriesを使ってカテゴリ一覧を出力してみます。

<ul>
  <mt:Categories>
    <li><mt:CategoryLabel></li>
  </mt:Categories>
</ul>

管理画面上で並び替えた順番でカテゴリが表示されるのかと思ったのですが、カテゴリ名の順番で出力されるようでした。

HTML

<ul>
    <li>カテゴリA</li>
    <li>カテゴリA-1</li>
    <li>カテゴリA-2</li>
    <li>カテゴリB</li>
    <li>カテゴリC</li>
    <li>カテゴリC-1</li>
</ul>

ドキュメントを見ても、並び順を変更するsort_byは使えないようです。

MtCategoriesではなく、MtTopLevelCategoriesやMtSubCategoriesだとsort_byが使えるようです。
まずは特に設定しないで試してみます。

<ul>
  <mt:TopLevelCategories>
    <li><mt:CategoryLabel></li>
    <mt:SubCategories>
      <li><mt:CategoryLabel></li>
    </mt:SubCategories>
  </mt:TopLevelCategories>
</ul>

MtTopLevelCategoriesとMtSubCategoriesの場合、管理画面上で並び替えた順番でカテゴリが表示されるようです。

HTML

<ul>
    <li>カテゴリB</li>
    <li>カテゴリC</li>
      <li>カテゴリC-1</li>
    <li>カテゴリA</li>
      <li>カテゴリA-2</li>
      <li>カテゴリA-1</li>
</ul>

sort_byの値にcreated_onを指定して、作成日順に並ぶようにしてみます。

<ul>
  <mt:TopLevelCategories sort_by="created_on">
    <li><mt:CategoryLabel></li>
    <mt:SubCategories sort_by="created_on">
      <li><mt:CategoryLabel></li>
    </mt:SubCategories>
  </mt:TopLevelCategories>
</ul>

意図した通り、作成日順(ID順)の並び順で表示することができました。

HTML

<ul>
    <li>カテゴリB</li>
    <li>カテゴリA</li>
      <li>カテゴリA-1</li>
      <li>カテゴリA-2</li>
    <li>カテゴリC</li>
      <li>カテゴリC-1</li>
</ul>

 

【参考サイト】

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

▲PAGE TOP