[wp-trac] [WordPress Trac] #65080: wp_admin_bar_add_color_scheme_to_front_end()` uses `wp_remote_get()` to fetch a local CSS file, causing an unnecessary HTTP request on every front-end page load
WordPress Trac
noreply at wordpress.org
Thu Apr 16 13:19:49 UTC 2026
#65080: wp_admin_bar_add_color_scheme_to_front_end()` uses `wp_remote_get()` to
fetch a local CSS file, causing an unnecessary HTTP request on every front-
end page load
--------------------------+-----------------------------
Reporter: edumembe | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: HTTP API | Version: trunk
Severity: normal | Keywords: needs-patch
Focuses: performance |
--------------------------+-----------------------------
**Description:**
The function introduced in 7.0.0 (`wp-includes/admin-bar.php`) fetches the
admin color scheme stylesheet via `wp_remote_get( $url )`, where `$url`
points to a local file such as `/wp-
admin/css/colors/modern/colors.min.css`.
This results in a full HTTP round-trip to the server itself on every
front-end page load when the admin bar is visible. On our test
environment, this request consistently takes ~30ms, accounting for the
majority of the performance difference between WordPress 6.9 and 7.0.
**Steps to reproduce:**
1. Install WordPress 7.0 with any classic theme.
2. Log in as an administrator and visit the front end.
3. Open Query Monitor → HTTP API Calls.
4. Observe a GET request to `/wp-admin/css/colors/modern/colors.min.css`
taking 20–50ms.
**Expected behavior:**
The CSS content should be read directly from the filesystem using
`file_get_contents()` or `WP_Filesystem`, avoiding the HTTP overhead
entirely. The file path is already resolvable locally via `ABSPATH`.
**Suggested fix:**
Replace `wp_remote_get( $url )` with a direct filesystem read:
```php
$css_file = ABSPATH . 'wp-admin/css/colors/' . $color_scheme .
'/colors.min.css';
if ( ! file_exists( $css_file ) ) {
return;
}
$css = file_get_contents( $css_file );
```
This eliminates the HTTP request while producing identical output.
**Environment:**
- WordPress 7.0
- Classic (non-block) theme
- Admin bar enabled on front end
- PHP 8.x, OPcache enabled
**Impact:** Performance regression on every front-end page load for
logged-in users. The HTTP request is blocking and adds 20–50ms of latency
unconditionally.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/65080>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list