MovableTypeでブログをソートする

MTのトップページ(ウェブサイト)で登録しているブログをリスト化できるわけですが、これらのブログを自由にソートできるようにするには、ちょっと一手間必要です。カスタムフィールド使わないとできないんですね。結構面倒くさいです。

カスタムフィールドの作成

システムのダッシュボードから上部バーのメニューから「その他」を選ぶとカスタムフィールドがあるので、新規作成を選択します。
システムオブジェクトで「ブログ」を選ぶとブログ設定に関連したカスタムフィールドを作成することができます。

  • 名前:ブログソートオーダー
  • 説明:ブログをリスト化する際にソート順のキーを作成する
  • 種類:テキスト
  • 必須?:チェックを入れる
  • 既定値:なし
  • ベースネーム:blogsortorder
  • テンプレートタグ:BlogSortOrder

それぞれのブログダッシュボードの設定メニューの全般に新しいカスタムフィールドが追加されているので、ソート順に並べる順番を記述してゆきます。ブログAには1を、ブログBには2を…という具合です。

MTタグ

以下のように記述します。

<!--ソート順にハッシュを作成-->
<mt:Blogs include_blogs="children">
<$mt:BlogSortOrder setvar="blog_sort_order"$>
<mt:SetVarBlock name="blog_list" key="$blog_sort_order">
<li><a href="<$mt:BlogURL$>"><$mt:BlogName$></a></li>
</mt:SetVarBlock>
</mt:Blogs>

<!--以下が出力-->
<mt:Loop name="blog_list" sort_by="key numeric">
<mt:If name="__first__">
<div class="widget-blogs widget-archives widget">
<h3 class="widget-header">ブログ</h3>
<div class="widget-content">
<ul>
</mt:If>
<$mt:GetVar name="__value__"$>
<mt:If name="__last__">
</ul>
</div>
</div>
</mt:If>
</mt:Loop>