diff -r be944660c56a -r 3d72ae0968f4 wp/wp-admin/includes/menu.php --- a/wp/wp-admin/includes/menu.php Wed Sep 21 18:19:35 2022 +0200 +++ b/wp/wp-admin/includes/menu.php Tue Sep 27 16:37:53 2022 +0200 @@ -187,56 +187,70 @@ unset( $id, $data, $subs, $first_sub ); /** - * @param string $add - * @param string $class - * @return string + * Adds a CSS class to a string. + * + * @since 2.7.0 + * + * @param string $class_to_add The CSS class to add. + * @param string $classes The string to add the CSS class to. + * @return string The string with the CSS class added. */ -function add_cssclass( $add, $class ) { - $class = empty( $class ) ? $add : $class .= ' ' . $add; - return $class; +function add_cssclass( $class_to_add, $classes ) { + if ( empty( $classes ) ) { + return $class_to_add; + } + + return $classes . ' ' . $class_to_add; } /** - * @param array $menu - * @return array + * Adds CSS classes for top-level administration menu items. + * + * The list of added classes includes `.menu-top-first` and `.menu-top-last`. + * + * @since 2.7.0 + * + * @param array $menu The array of administration menu items. + * @return array The array of administration menu items with the CSS classes added. */ function add_menu_classes( $menu ) { - $first = false; - $lastorder = false; - $i = 0; - $mc = count( $menu ); + $first_item = false; + $last_order = false; + $items_count = count( $menu ); + $i = 0; + foreach ( $menu as $order => $top ) { $i++; if ( 0 == $order ) { // Dashboard is always shown/single. $menu[0][4] = add_cssclass( 'menu-top-first', $top[4] ); - $lastorder = 0; + $last_order = 0; continue; } - if ( 0 === strpos( $top[2], 'separator' ) && false !== $lastorder ) { // If separator. - $first = true; - $c = $menu[ $lastorder ][4]; - $menu[ $lastorder ][4] = add_cssclass( 'menu-top-last', $c ); + if ( 0 === strpos( $top[2], 'separator' ) && false !== $last_order ) { // If separator. + $first_item = true; + $classes = $menu[ $last_order ][4]; + $menu[ $last_order ][4] = add_cssclass( 'menu-top-last', $classes ); continue; } - if ( $first ) { - $c = $menu[ $order ][4]; - $menu[ $order ][4] = add_cssclass( 'menu-top-first', $c ); - $first = false; + if ( $first_item ) { + $classes = $menu[ $order ][4]; + $menu[ $order ][4] = add_cssclass( 'menu-top-first', $classes ); + $first_item = false; } - if ( $mc == $i ) { // Last item. - $c = $menu[ $order ][4]; - $menu[ $order ][4] = add_cssclass( 'menu-top-last', $c ); + if ( $i == $items_count ) { // Last item. + $classes = $menu[ $order ][4]; + $menu[ $order ][4] = add_cssclass( 'menu-top-last', $classes ); } - $lastorder = $order; + $last_order = $order; } /** - * Filters administration menus array with classes added for top-level items. + * Filters administration menu array with classes added for top-level items. * * @since 2.7.0 *