PluginProbe
Gutenberg / 18.3.0
Gutenberg v18.3.0
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / lib / script-loader.php

script-loader.php in Gutenberg 18.3.0, at lib/script-loader.php

123 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Overrides the script-loader.php file.
4 *
5 * @package gutenberg
6 */
7
8 // Remove core actions to override.
9 remove_action( 'wp_enqueue_scripts', 'wp_enqueue_global_styles' );
10 remove_action( 'wp_footer', 'wp_enqueue_global_styles', 1 );
11
12 /**
13 * Enqueues the global styles defined via theme.json.
14 *
15 * Copy of the core `wp_enqueue_global_styles`. Uses helper methods bundled with the plugin.
16 *
17 * @return void
18 */
19 function gutenberg_enqueue_global_styles() {
20 $separate_assets = wp_should_load_separate_core_block_assets();
21 $is_block_theme = wp_is_block_theme();
22 $is_classic_theme = ! $is_block_theme;
23
24 /*
25 * Global styles should be printed in the head when loading all styles combined.
26 * The footer should only be used to print global styles for classic themes with separate core assets enabled.
27 *
28 * See https://core.trac.wordpress.org/ticket/53494.
29 */
30 if (
31 ( $is_block_theme && doing_action( 'wp_footer' ) ) ||
32 ( $is_classic_theme && doing_action( 'wp_footer' ) && ! $separate_assets ) ||
33 ( $is_classic_theme && doing_action( 'wp_enqueue_scripts' ) && $separate_assets )
34 ) {
35 return;
36 }
37
38 /*
39 * If loading the CSS for each block separately, then load the theme.json CSS conditionally.
40 * This removes the CSS from the global-styles stylesheet and adds it to the inline CSS for each block.
41 * This filter must be registered before calling wp_get_global_stylesheet();
42 */
43 add_filter( 'wp_theme_json_get_style_nodes', 'wp_filter_out_block_nodes' );
44
45 $stylesheet = gutenberg_get_global_stylesheet();
46 if ( empty( $stylesheet ) ) {
47 return;
48 }
49
50 wp_register_style( 'global-styles', false );
51 wp_add_inline_style( 'global-styles', $stylesheet );
52 wp_enqueue_style( 'global-styles' );
53
54 // Add each block as an inline css.
55 gutenberg_add_global_styles_for_blocks();
56
57 /*
58 * Add the custom CSS for the global styles.
59 * Before that, dequeue the Customizer's custom CSS
60 * and add it before the global styles custom CSS.
61 * Don't enqueue Customizer's custom CSS separately.
62 */
63 remove_action( 'wp_head', 'wp_custom_css_cb', 101 );
64
65 $custom_css = wp_get_custom_css();
66
67 if ( ! wp_should_load_separate_core_block_assets() ) {
68 /*
69 * If loading all block assets together, add both
70 * the base and block custom CSS at once. Else load
71 * the base custom CSS only, and the block custom CSS
72 * will be added to the inline CSS for each block in
73 * gutenberg_add_global_styles_block_custom_css().
74 */
75 $custom_css .= gutenberg_get_global_styles_custom_css();
76 } else {
77 $custom_css .= gutenberg_get_global_styles_base_custom_css();
78 }
79
80 if ( ! empty( $custom_css ) ) {
81 wp_add_inline_style( 'global-styles', $custom_css );
82 }
83
84 gutenberg_add_global_styles_block_custom_css();
85 }
86 add_action( 'wp_enqueue_scripts', 'gutenberg_enqueue_global_styles' );
87 add_action( 'wp_footer', 'gutenberg_enqueue_global_styles', 1 );
88
89 /**
90 * Enqueues the global styles custom css.
91 *
92 * @since 6.2.0
93 */
94 function gutenberg_enqueue_global_styles_custom_css() {
95 _deprecated_function( __FUNCTION__, 'Gutenberg 17.8.0', 'gutenberg_enqueue_global_styles' );
96 if ( ! wp_is_block_theme() ) {
97 return;
98 }
99
100 // Don't enqueue Customizer's custom CSS separately.
101 remove_action( 'wp_head', 'wp_custom_css_cb', 101 );
102
103 $custom_css = wp_get_custom_css();
104 $custom_css .= gutenberg_get_global_styles_custom_css();
105
106 if ( ! empty( $custom_css ) ) {
107 wp_add_inline_style( 'global-styles', $custom_css );
108 }
109 }
110
111 /**
112 * Function that enqueues the CSS Custom Properties coming from theme.json.
113 *
114 * @since 5.9.0
115 */
116 function gutenberg_enqueue_global_styles_css_custom_properties() {
117 wp_register_style( 'global-styles-css-custom-properties', false );
118 wp_add_inline_style( 'global-styles-css-custom-properties', gutenberg_get_global_stylesheet( array( 'variables' ) ) );
119 wp_enqueue_style( 'global-styles-css-custom-properties' );
120 }
121 remove_action( 'enqueue_block_editor_assets', 'wp_enqueue_global_styles_css_custom_properties' );
122 add_action( 'enqueue_block_editor_assets', 'gutenberg_enqueue_global_styles_css_custom_properties' );
123