mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Script Loader: Add a check to see in style is registered in wp_maybe_inline_styles.
Add a check in `wp_maybe_inline_styles` to check that style is registered before processing items in queue. It is possible that developers may have called `wp_deregister_style`, unregistering style but the style still be in the queue to be processed. Without this check, typing to access the `src` property would result in a notice error. Follow on from [55888]. Props spacedmonkey, flixos90, dd32, kebbet. See #58394. git-svn-id: https://develop.svn.wordpress.org/trunk@55909 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
13f85b4365
commit
559e6cecf4
@ -2872,8 +2872,11 @@ function wp_maybe_inline_styles() {
|
||||
|
||||
// Build an array of styles that have a path defined.
|
||||
foreach ( $wp_styles->queue as $handle ) {
|
||||
if ( ! isset( $wp_styles->registered[ $handle ] ) ) {
|
||||
continue;
|
||||
}
|
||||
$src = $wp_styles->registered[ $handle ]->src;
|
||||
$path = wp_styles()->get_data( $handle, 'path' );
|
||||
$path = $wp_styles->get_data( $handle, 'path' );
|
||||
if ( $path && $src ) {
|
||||
$size = wp_filesize( $path );
|
||||
if ( ! $size ) {
|
||||
|
||||
@ -537,6 +537,26 @@ CSS;
|
||||
$this->assertSameSets( $GLOBALS['wp_styles']->registered['test-handle']->extra['after'], array( $css ), 'Source of style should set to after property' );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 58394
|
||||
*
|
||||
* @covers ::wp_maybe_inline_styles
|
||||
*/
|
||||
public function test_wp_maybe_inline_styles_dequeue_styles() {
|
||||
$filter = new MockAction();
|
||||
add_filter( 'pre_wp_filesize', array( $filter, 'filter' ) );
|
||||
wp_register_style( 'test-handle', '/' . WPINC . '/css/classic-themes.css' );
|
||||
wp_style_add_data( 'test-handle', 'path', ABSPATH . WPINC . '/css/classic-themes.css' );
|
||||
|
||||
wp_enqueue_style( 'test-handle' );
|
||||
|
||||
wp_deregister_style( 'test-handle' );
|
||||
|
||||
wp_maybe_inline_styles();
|
||||
|
||||
$this->assertSame( 0, $filter->get_call_count() );
|
||||
}
|
||||
|
||||
/**
|
||||
* wp_filesize should be only be called once, as on the second run of wp_maybe_inline_styles,
|
||||
* src will be set to false and filesize will not be requested.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user