From 64367f2de78c21864c83e88c29c5120cd90f567e Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Wed, 25 May 2011 16:05:52 +0000 Subject: [PATCH] If there is only one submenu and it is has same destination as the parent, remove the submenu. fixes #17528 git-svn-id: https://develop.svn.wordpress.org/trunk@18034 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/includes/menu.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/wp-admin/includes/menu.php b/wp-admin/includes/menu.php index a0c2e58895..7edda12731 100644 --- a/wp-admin/includes/menu.php +++ b/wp-admin/includes/menu.php @@ -102,6 +102,15 @@ foreach ( $menu as $id => $data ) { if ( ! current_user_can($data[1]) ) $_wp_menu_nopriv[$data[2]] = true; + // If there is only one submenu and it is has same destination as the parent, + // remove the submenu. + if ( 1 == count ( $submenu[$data[2]] ) ) { + $subs = $submenu[$data[2]]; + $first_sub = array_shift($subs); + if ( $data[2] == $first_sub[2] ) + unset( $submenu[$data[2]] ); + } + // If submenu is empty... if ( empty($submenu[$data[2]]) ) { // And user doesn't have privs, remove menu. @@ -110,7 +119,7 @@ foreach ( $menu as $id => $data ) { } } } -unset($id, $data); +unset($id, $data, $subs, $first_sub); // Remove any duplicated seperators $seperator_found = false;