MTAppFieldSort

編集画面メインカラムのフィールドを指定順に並べ替える。コア欄とカスタム欄(c: 接頭辞)を混在可。指定外を隠すオプションあり。ウィジェットは非対応。

ブログ記事・ウェブページ編集画面のメインカラムのフィールドを、指定した順序に並べ替える静的メソッドです。コアフィールド(タイトル・本文など)とカスタムフィールドを混在させて任意の順番に並べられます。指定外のフィールドを隠すこともできます。ウィジェット(サイドバー)の並べ替えには対応していません。

構文

$.MTAppFieldSort(options);

静的メソッド($.MTAppFieldSort)です。

パラメータ

options {Object} — 省略可。以下のプロパティを持ちます。

プロパティ既定値説明
sortstring'title,text,tags,excerpt,keywords'上から並べたい順に basename をカンマ区切りで指定。カスタムフィールドは basename の先頭に c: を付ける
insertIDstring'sortable'フィールドを内包する要素の id
otherFieldHidebooleanfalsetruesort に指定していないフィールドを非表示にする
addClassstring''並べ替えた各フィールドに付与するクラス
debugbooleanfalsetrue で、sort に指定したフィールドが見つからない場合にコンソールへ通知する
insert_idstring非推奨。insertID のエイリアス

戻り値

なし(undefined)。

使用例

コア欄とカスタム欄を任意順に

// タイトル → カスタムフィールド foo → 本文 の順に並べ、指定外は隠す
$.MTAppFieldSort({ sort: 'title,c:foo,text', otherFieldHide: true });

並べ替えた欄にクラスを付与

$.MTAppFieldSort({ sort: 'title,c:summary,text', addClass: 'sorted-field' });

user.js での記述例

user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。

(function ($) {
    if (typeof mtappVars !== 'object') return;
    if (mtappVars.screen_id === 'edit-entry') {
        $.MTAppFieldSort({ sort: 'title,c:foo,text', otherFieldHide: true });
    }
})(jQuery);

補足

  • sort の各 basename は <basename>-field(カスタムフィールドは customfield_<basename>-field)の id を持つフィールド要素として解決されます。
  • 指定した順に、対象フィールドをコンテナ(既定 #sortable)の先頭へ移動します。sort に並べた順がそのまま画面上の上からの順になります。
  • otherFieldHide: true のときは、いったんコンテナ内の全フィールドと #quickpost を隠してから、sort 指定のフィールドだけを表示します。
  • debug: true のときは、sort に指定したのに画面に存在しないフィールドだけをコンソールに通知します(見つかったフィールドは通知されません)。
  • ウィジェット(サイドバー)の並べ替えには対応していません。

関連

  • MTAppMoveToWidget — 既存フィールドをサイドバーのウィジェットへ移動する。
  • MTAppCustomize — フィールドのラベル変更・表示制御・クラス追加などをまとめて行う。