Try it:
function sunshine_submenu_show_fix($parent_file) {
global $plugin_page;
$taxonomy = $current_screen->taxonomy;
if ($taxonomy == 'sunshine-product-category')
$plugin_page="sunshine_admin";
return $parent_file;
}
add_action('parent_file', 'sunshine_submenu_show_fix');
explanation:
in file /wp-admin/menu-header.php:
$parent_file = apply_filters( 'parent_file', $parent_file );
get_admin_page_parent();
...
function _wp_menu_output(...) {
...
if ( ( $parent_file && $item[2] == $parent_file ) || ( empty($typenow) && $self == $item[2] ) ) {
$class[] = ! empty( $submenu_items ) ? 'wp-has-current-submenu wp-menu-open' : 'current';
...
} else if (
( ! isset( $plugin_page ) && $self == $sub_item[2] ) ||
( isset( $plugin_page ) && $plugin_page == $sub_item[2] && ( $item[2] == $self_type || $item[2] == $self || file_exists($menu_file) === false ) )
) {
$class[] = 'current';
}
...
}
in file /wp-admin/includes/plugin.php:
...
function get_admin_page_parent( $parent="" ) {
...
if ( $parent_menu[2] == $plugin_page ) {
$parent_file = $plugin_page;
...
if ( isset( $plugin_page ) && ($plugin_page == $submenu_array[2] ) ) {
$parent_file = $parent;
...
}