記事の順番は、日付順にしたりタイトル順にしたり、といったことはこれまでもできたんだけど、企業サイトのCMSとしてMTを使っていると、お客さんの側で順番をコントロールしたい、という要望がたいてい出てくる。

こういうときはプラグインを使うしかなかったのかもしれないけど、
MT5になってからは、標準でお客さんのコントロールしたいように順序をコントロールできるようになった。

カスタムフィールドを使って、その入力値を順序のバロメータにできるんすね。


■やりかた

①まずカスタムフィールドを新規作成しましょう。
 種類はなんでもいいけど、使いやすいのは「テキスト」だと思う。
 「トップ記事順序」などと名前をつけ、
 テンプレートタグも「topentryorder」などと名前をつけます。

②つぎに、ページのテンプレートをひらき、記事を吐き出していた部分

<MTEntries>
  <a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
</MTEntries> 

を次のようにします。

<MTEntries sort_by="field:topentryorder">
  <a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
</MTEntries>  

まぁ見ればわかると思いますが、カスタムフィールドの値を順序のキーとして使うには

sort_by="field:◯◯◯◯"

という書き方をします。
◯◯◯◯の部分にはテンプレートタグが入る。


③ そのままだと降順になっている。降順ってのは大きいほうが上になる。
それだとちょっと使いにくいよね。

表示順のフィールドには、「001」と入れたり「015」と入れたりするとおもうんだけど、普段使うときは、数が小さいほうが上になったほうが直感的で使いやすい。

なので、表示順序は昇順にしてあげる。

sort_order="acsend"

ということで、完成版はこちら 

<MTEntries sort_by="field:topentryordersort_order="acsend">
  <a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
</MTEntries>   
便利になりました。