WordPress TinyMCE Template のテンプレート並び順を変更する

WordPress TinyMCE Template でテンプレート挿入時の並び順が作成順(id順)で使いづらかったのでタイトル順になるように改造してみた。

  1. tinymce-templates/js/tinymce-templates.js を開き、get_template_list()を探す。
  2. tinymceTemplates.set_content(); の前に以下のソートを追加
    .sort(function( a, b ) { return ( a.text == b.text ? 0 : ( a.text < b.text ? -1 : 1 ) ) }));
                

  3. このソートでは初期選択アイテムが最後尾となるため、気になるなるのであれば以下のコードで先頭を選択状態にする
    $( "#tinymce-templates-list option:first" ).prop( 'selected', true );
                

変更後の関数はこんな感じ。

get_template_list: function()
{
    var args = $.extend({}, tinymce_templates_list_args);
    $.ajax({
        url: tinymce_templates_list_uri,
        async: true,
        type: 'GET',
        dataType: 'json',
        data: args
    }).done(function(data){
        $.each(data, function(key, tpl){
            var option = $('');
            $(option).attr('value', key);
            $(option).text(tpl.title);
            $('#tinymce-templates-list').append(option);
        });
        $( "#tinymce-templates-list" ).html( $( "#tinymce-templates-list option" ).
            sort(function( a, b ) { return ( a.text == b.text ? 0 : ( a.text < b.text ? -1 : 1 ) ) }));
        $( "#tinymce-templates-list option:first" ).prop( 'selected', true );
        tinymceTemplates.set_content();
    });
},
    

コメントを残す

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