diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-admin/menu-header.php --- a/wp/wp-admin/menu-header.php Tue Oct 22 16:11:46 2019 +0200 +++ b/wp/wp-admin/menu-header.php Tue Dec 15 13:49:49 2020 +0100 @@ -69,7 +69,7 @@ global $self, $parent_file, $submenu_file, $plugin_page, $typenow; $first = true; - // 0 = menu_title, 1 = capability, 2 = menu_slug, 3 = page_title, 4 = classes, 5 = hookname, 6 = icon_url + // 0 = menu_title, 1 = capability, 2 = menu_slug, 3 = page_title, 4 = classes, 5 = hookname, 6 = icon_url. foreach ( $menu as $key => $item ) { $admin_is_parent = false; $class = array(); @@ -88,7 +88,7 @@ $submenu_items = $submenu[ $item[2] ]; } - if ( ( $parent_file && $item[2] == $parent_file ) || ( empty( $typenow ) && $self == $item[2] ) ) { + if ( ( $parent_file && $item[2] === $parent_file ) || ( empty( $typenow ) && $self === $item[2] ) ) { if ( ! empty( $submenu_items ) ) { $class[] = 'wp-has-current-submenu wp-menu-open'; } else { @@ -108,7 +108,8 @@ $class = $class ? ' class="' . join( ' ', $class ) . '"' : ''; $id = ! empty( $item[5] ) ? ' id="' . preg_replace( '|[^a-zA-Z0-9_:.]|', '-', $item[5] ) . '"' : ''; - $img = $img_style = ''; + $img = ''; + $img_style = ''; $img_class = ' dashicons-before'; if ( false !== strpos( $class, 'wp-menu-separator' ) ) { @@ -152,10 +153,17 @@ $submenu_items = array_values( $submenu_items ); // Re-index. $menu_hook = get_plugin_page_hook( $submenu_items[0][2], $item[2] ); $menu_file = $submenu_items[0][2]; - if ( false !== ( $pos = strpos( $menu_file, '?' ) ) ) { + $pos = strpos( $menu_file, '?' ); + + if ( false !== $pos ) { $menu_file = substr( $menu_file, 0, $pos ); } - if ( ! empty( $menu_hook ) || ( ( 'index.php' != $submenu_items[0][2] ) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) && ! file_exists( ABSPATH . "/wp-admin/$menu_file" ) ) ) { + + if ( ! empty( $menu_hook ) + || ( ( 'index.php' !== $submenu_items[0][2] ) + && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) + && ! file_exists( ABSPATH . "/wp-admin/$menu_file" ) ) + ) { $admin_is_parent = true; echo "$arrow"; } else { @@ -164,10 +172,17 @@ } elseif ( ! empty( $item[2] ) && current_user_can( $item[1] ) ) { $menu_hook = get_plugin_page_hook( $item[2], 'admin.php' ); $menu_file = $item[2]; - if ( false !== ( $pos = strpos( $menu_file, '?' ) ) ) { + $pos = strpos( $menu_file, '?' ); + + if ( false !== $pos ) { $menu_file = substr( $menu_file, 0, $pos ); } - if ( ! empty( $menu_hook ) || ( ( 'index.php' != $item[2] ) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) && ! file_exists( ABSPATH . "/wp-admin/$menu_file" ) ) ) { + + if ( ! empty( $menu_hook ) + || ( ( 'index.php' !== $item[2] ) + && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) + && ! file_exists( ABSPATH . "/wp-admin/$menu_file" ) ) + ) { $admin_is_parent = true; echo "\n\t$arrow"; } else { @@ -181,7 +196,7 @@ $first = true; - // 0 = menu_title, 1 = capability, 2 = menu_slug, 3 = page_title, 4 = classes + // 0 = menu_title, 1 = capability, 2 = menu_slug, 3 = page_title, 4 = classes. foreach ( $submenu_items as $sub_key => $sub_item ) { if ( ! current_user_can( $sub_item[1] ) ) { continue; @@ -189,14 +204,16 @@ $class = array(); $aria_attributes = ''; + if ( $first ) { $class[] = 'wp-first-item'; $first = false; } $menu_file = $item[2]; + $pos = strpos( $menu_file, '?' ); - if ( false !== ( $pos = strpos( $menu_file, '?' ) ) ) { + if ( false !== $pos ) { $menu_file = substr( $menu_file, 0, $pos ); } @@ -204,15 +221,16 @@ $self_type = ! empty( $typenow ) ? $self . '?post_type=' . $typenow : 'nothing'; if ( isset( $submenu_file ) ) { - if ( $submenu_file == $sub_item[2] ) { + if ( $submenu_file === $sub_item[2] ) { $class[] = 'current'; $aria_attributes .= ' aria-current="page"'; } // If plugin_page is set the parent must either match the current page or not physically exist. // This allows plugin pages with the same hook to exist under different parents. } elseif ( - ( ! 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 ) ) + ( ! 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'; $aria_attributes .= ' aria-current="page"'; @@ -226,14 +244,19 @@ $menu_hook = get_plugin_page_hook( $sub_item[2], $item[2] ); $sub_file = $sub_item[2]; - if ( false !== ( $pos = strpos( $sub_file, '?' ) ) ) { + $pos = strpos( $sub_file, '?' ); + if ( false !== $pos ) { $sub_file = substr( $sub_file, 0, $pos ); } $title = wptexturize( $sub_item[0] ); - if ( ! empty( $menu_hook ) || ( ( 'index.php' != $sub_item[2] ) && file_exists( WP_PLUGIN_DIR . "/$sub_file" ) && ! file_exists( ABSPATH . "/wp-admin/$sub_file" ) ) ) { - // If admin.php is the current page or if the parent exists as a file in the plugins or admin dir + if ( ! empty( $menu_hook ) + || ( ( 'index.php' !== $sub_item[2] ) + && file_exists( WP_PLUGIN_DIR . "/$sub_file" ) + && ! file_exists( ABSPATH . "/wp-admin/$sub_file" ) ) + ) { + // If admin.php is the current page or if the parent exists as a file in the plugins or admin directory. if ( ( ! $admin_is_parent && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) && ! is_dir( WP_PLUGIN_DIR . "/{$item[2]}" ) ) || file_exists( $menu_file ) ) { $sub_item_url = add_query_arg( array( 'page' => $sub_item[2] ), $item[2] ); } else {