WordPressフォーラムで
投稿画面のカテゴリーを開閉式にしたい
という記事が有りました。

その中で開閉式にするjQueryを紹介している人がいました。
投稿画面のカテゴリメタボックスの表示をカスタマイズ

使ってみるとなかなか便利だったのですが、孫カテゴリまであった時展開がおかしかったり、デザインが多少ずれたりするので
少しカスタマイズしてみました。

<?php
add_action( 'admin_head','my_category_toggle' );
 
function my_category_toggle(){
?>
<script type="text/javascript">
<!--
    jQuery(function() {
        jQuery( '.categorydiv div.tabs-panel' ).css({'max-height':'100%'});
        jQuery( '#categorychecklist  li').each(function(){  
            if( jQuery( this ).children('ul').hasClass( 'children' ) ){
            jQuery( this ).children( 'label' ).before('<span class="toggle-switch">●</span>&nbsp;').css({'cursor':'default'});
            }else{
            jQuery( this ).children( 'label' ).before('<span>○</span>&nbsp;');
           
            }
        });
        jQuery('#categorychecklist li > .children').hide();
        jQuery('.toggle-switch').click(function () {
            jQuery(this).siblings('ul').toggle("slow");
        });
     });
     //-->
</script>
<?php
}
?>

展開しないカテゴリーの前にも○をつけてレイアウトをある程度調整したのと、孫カテゴリまである場合はそこも展開できるようにしました。
チェックを入れたりラベルクリックで開閉は開閉部分を関数化して実行させればできそうですが、あまり魅力を感じないのでやめておきました。