Opened 4 years ago
Last modified 4 years ago
#55330 new enhancement
Set global_styles_svg_filters transient to return true causing symbol `1` to be appeared on the screen in a production mode
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Awaiting Review | Priority: | normal |
| Severity: | trivial | Version: | 5.9.1 |
| Component: | General | Keywords: | |
| Focuses: | Cc: |
Description
WordPress 5.9.1
PHP 8.0.15
When I set global_styles_svg_filters to return true (to prevent from being set - I don't use theme.json but request is sending so I want to disable it) it renders 1 at the top of the website
Steps to reproduce on TwentyTwentyTwo theme:
- Paste these lines in
functions.php
<?php // @see https://github.com/WordPress/WordPress/blob/master/wp-includes/option.php#L131 $theme = get_stylesheet(); add_filter( "pre_transient_global_styles_svg_filters_{$theme}", '__return_true' );
You will see 1 at the top of any screen on site's front
If you define WP_DEBUG as true or WP_ENVIRONMENT_TYPE as development it will dissapear
It happens [here](https://github.com/WordPress/WordPress/blob/master/wp-includes/script-loader.php#L2361) - wp_get_global_styles_svg_filters() function will return true (as I manually set transient) so $cached [will](https://github.com/WordPress/WordPress/blob/2399966d8ce0f89e3989360929fa01edf86e15c0/wp-includes/global-styles-and-settings.php#L172) be true as well. Therefore it echoing as 1
It is so minor and specific but it happened to me :) So because I may set any return type for this transient my guess there is no need for extra check but for a filter. For example
<?php // script-loader.php $svg_filters = wp_get_global_styles_svg_filters(); $filters = apply_filters( 'wp_get_global_styles_svg_filters', $svg_filters );
This way I will control svg filters output myself
Change History (2)
#2
@
4 years ago
Hey @vijayhardaha
I'm actually need anything but false to satisfy false !== $pre condition. See [here](https://github.com/WordPress/WordPress/blob/master/wp-includes/option.php#L847). I tested with null - 1 is NOT appearing but the call to update transient is present - and my personal goal is to prevent it
Hey @aliakseyenkaihar, May I ask why
__return_trueinstead of setting__return_false? as you mentioned to prevent from being set that can be done by setting false, since you're setting it true that's validated the if condition and you returned content is being printed as 1.