管理画面でカスタムタクソノミーを使って絞り込みが出来るようにする

管理画面のカスタム投稿タイプの記事一覧ページで、カテゴリ(カスタムタクソノミ―)による絞り込みを行う。
元はこちら。

管理画面でカスタムタクソノミーを使って絞り込みが出来るようにする

大変役立ったのだけど、階層化されたタクソノミーの親子関係を維持して表示したかった。
自分で少し変えてみた。
ただし、作成した際に二階層目までしか必要なかったので、三階層目以降には未対応。

function add_post_taxonomy_restrict_filter() {
    global $post_type;
    if ( '作成したカスタム投稿タイプ' == $post_type ) {
        echo '<select name="作成したカスタムタクソノミ―">';
            echo '<option value="">カテゴリー指定なし</option>';
            $terms = get_terms('作成したカスタムタクソノミ―', 'hide_empty=0');
            foreach ($terms as $term) :
             if ($term->parent == 0):
              echo '<option value="' . $term->slug . '">' . $term->name . '</option>';
              $parentID = $term->term_id;

              $children = get_term_children( $parentID , '作成したカスタムタクソノミ―' );
              if(!empty($children)):

               foreach($children as $childID):
                $child=get_term_by('id', $childID, '作成したカスタムタクソノミ―');
                echo '<option value="' . $child->slug  . '"> ' . $child->name . '</option>';
               endforeach;

              endif;
             endif;
           endforeach;

        echo '</select>';
    }
}
add_action( 'restrict_manage_posts', 'add_post_taxonomy_restrict_filter' );