Movable Type 7 のカスタムフィールドを簡単に並び替える

これは Movable Type Advent Calendar 2020 2日目の記事です。

Movable Type 7(以下、MT7)がリリースされてから約2年半が過ぎ、直近の導入案件では コンテンツタイプ に集約されているかと思います。とはいえ、要件によっては従来の 記事ページ ベースで進めることもあるハズ。

ということで、記事 のカスタムフィールドの並び順をコンソールから変更する方法をご紹介します。

やってみる

MT7 の標準機能として、カスタムフィールドの並び順を変更すると JavaScript の saveEntryFieldOptions ファンクションが実行されます。

saveEntryFieldOptions({
  data: [
    'customfield_text_singleline',
    'customfield_image',
    'customfield_text_multiline',
    'customfield_radio',
    'customfield_checkbox',
    'excerpt',
    'keywords',
    'tags'
  ],
  sort_only: true
});

ポイントは data の配列に希望する順番でフィールドのベースネームを指定することです。

「カスタムフィールドには接頭辞 customfield_ が必要」という注意点もありますが、ブラウザから 記事 編集画面の DOM を確認し、div#sortable 直下の要素の id 名を参考にするとよいでしょう。(※その場合、接尾語 -field は不要です。)

エントリ編集画面の DOM

あとは先程のコードを 記事 編集画面でブラウザのコンソールから実行して、リロードすれば反映されます。

やってみて

特にカスタムフィールドの数が多い場合など、ドラッグ&ドロップで変更するに比べてかなり効率的だと思いますので、気になる方はぜひお試しください。