Changeset 50836 for trunk/src/wp-includes/script-loader.php
- Timestamp:
- 05/11/2021 09:41:48 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/script-loader.php
r50773 r50836 1503 1503 $styles->add( 'wp-editor-font', $fonts_url ); // No longer used in core as of 5.7. 1504 1504 1505 $styles->add( 'wp-block-library-theme', "/wp-includes/css/dist/block-library/theme$suffix.css" ); 1505 $block_library_theme_path = "/wp-includes/css/dist/block-library/theme$suffix.css"; 1506 $styles->add( 'wp-block-library-theme', $block_library_theme_path ); 1507 $styles->add_data( 'wp-block-library-theme', 'path', ABSPATH . $block_library_theme_path ); 1506 1508 1507 1509 $styles->add( … … 1572 1574 $path = "/wp-includes/css/dist/$package/style$suffix.css"; 1573 1575 1576 if ( 'block-library' === $package && should_load_separate_core_block_assets() ) { 1577 $path = "/wp-includes/css/dist/$package/common$suffix.css"; 1578 } 1574 1579 $styles->add( $handle, $path, $dependencies ); 1580 $styles->add_data( $handle, 'path', ABSPATH . $path ); 1575 1581 } 1576 1582 … … 2278 2284 global $current_screen; 2279 2285 2286 if ( should_load_separate_core_block_assets() ) { 2287 return; 2288 } 2289 2280 2290 $load_editor_scripts = is_admin() && wp_should_load_block_editor_scripts_and_styles(); 2281 2291 … … 2496 2506 echo wp_get_inline_script_tag( $javascript, $attributes ); 2497 2507 } 2508 2509 /** 2510 * Allow small styles to be inlined. 2511 * This improves performance and sustainability, and is opt-in. 2512 * 2513 * Stylesheets can opt-in by adding `path` data using `wp_style_add_data`, and defining the file's absolute path. 2514 * wp_style_add_data( $style_handle, 'path', $file_path ); 2515 * 2516 * @since 5.8.0 2517 * 2518 * @return void 2519 */ 2520 function wp_maybe_inline_styles() { 2521 2522 $total_inline_limit = 20000; 2523 /** 2524 * The maximum size of inlined styles in bytes. 2525 * 2526 * @param int $total_inline_limit The file-size threshold, in bytes. Defaults to 20000. 2527 * @return int The file-size threshold, in bytes. 2528 */ 2529 $total_inline_limit = apply_filters( 'styles_inline_size_limit', $total_inline_limit ); 2530 2531 global $wp_styles; 2532 $styles = array(); 2533 2534 // Build an array of styles that have a path defined. 2535 foreach ( $wp_styles->queue as $handle ) { 2536 if ( wp_styles()->get_data( $handle, 'path' ) && file_exists( $wp_styles->registered[ $handle ]->extra['path'] ) ) { 2537 $styles[] = array( 2538 'handle' => $handle, 2539 'path' => $wp_styles->registered[ $handle ]->extra['path'], 2540 'size' => filesize( $wp_styles->registered[ $handle ]->extra['path'] ), 2541 ); 2542 } 2543 } 2544 2545 if ( ! empty( $styles ) ) { 2546 // Reorder styles array based on size. 2547 usort( 2548 $styles, 2549 function( $a, $b ) { 2550 return ( $a['size'] <= $b['size'] ) ? -1 : 1; 2551 } 2552 ); 2553 2554 /** 2555 * The total inlined size. 2556 * 2557 * On each iteration of the loop, if a style gets added inline the value of this var increases 2558 * to reflect the total size of inlined styles. 2559 */ 2560 $total_inline_size = 0; 2561 2562 // Loop styles. 2563 foreach ( $styles as $style ) { 2564 2565 // Size check. Since styles are ordered by size, we can break the loop. 2566 if ( $total_inline_size + $style['size'] > $total_inline_limit ) { 2567 break; 2568 } 2569 2570 // Get the styles if we don't already have them. 2571 $style['css'] = file_get_contents( $style['path'] ); 2572 2573 // Set `src` to `false` and add styles inline. 2574 $wp_styles->registered[ $style['handle'] ]->src = false; 2575 if ( empty( $wp_styles->registered[ $style['handle'] ]->extra['after'] ) ) { 2576 $wp_styles->registered[ $style['handle'] ]->extra['after'] = array(); 2577 } 2578 array_unshift( $wp_styles->registered[ $style['handle'] ]->extra['after'], $style['css'] ); 2579 2580 // Add the styles size to the $total_inline_size var. 2581 $total_inline_size += (int) $style['size']; 2582 } 2583 } 2584 }
Note: See TracChangeset
for help on using the changeset viewer.