From bb68adc61b43a034bc9d621a9ffcb56f94a147e8 Mon Sep 17 00:00:00 2001
From: Alex Koti <alexkoti@gmail.com>
Date: Mon, 22 Dec 2014 09:45:41 -0200
Subject: [PATCH] Check $pagenow in submenu with 'show_in_menu'

Patch to #16808
---
 src/wp-admin/includes/plugin.php | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/wp-admin/includes/plugin.php b/src/wp-admin/includes/plugin.php
index e2e3776..15406f7 100644
--- a/src/wp-admin/includes/plugin.php
+++ b/src/wp-admin/includes/plugin.php
@@ -1534,19 +1534,26 @@ function get_admin_page_parent( $parent = '' ) {
 
 	foreach (array_keys( (array)$submenu ) as $parent) {
 		foreach ( $submenu[$parent] as $submenu_array ) {
-			if ( isset( $_wp_real_parent_file[$parent] ) )
+			if ( isset( $_wp_real_parent_file[$parent] ) ) {
 				$parent = $_wp_real_parent_file[$parent];
+			}
 			if ( !empty($typenow) && ($submenu_array[2] == "$pagenow?post_type=$typenow") ) {
 				$parent_file = $parent;
 				return $parent;
 			} elseif ( $submenu_array[2] == $pagenow && empty($typenow) && ( empty($parent_file) || false === strpos($parent_file, '?') ) ) {
 				$parent_file = $parent;
 				return $parent;
-			} else
+			} elseif ( $pagenow == 'post-new.php' ) {
+				$ptype_obj = get_post_type_object( $typenow );
+				if ( $ptype_obj->show_in_menu && $ptype_obj->show_in_menu == $parent ) {
+					return true;
+				}
+			} else {
 				if ( isset( $plugin_page ) && ($plugin_page == $submenu_array[2] ) ) {
 					$parent_file = $parent;
 					return $parent;
 				}
+			}
 		}
 	}
 
-- 
1.8.3.msysgit.0

