author | ymh <ymh.work@gmail.com> |
Wed, 21 Sep 2022 18:19:35 +0200 | |
changeset 18 | be944660c56a |
parent 16 | a86126ab1dd4 |
child 19 | 3d72ae0968f4 |
permissions | -rw-r--r-- |
0 | 1 |
<?php |
2 |
/** |
|
3 |
* WordPress scripts and styles default loader. |
|
4 |
* |
|
5 |
* Several constants are used to manage the loading, concatenating and compression of scripts and CSS: |
|
6 |
* define('SCRIPT_DEBUG', true); loads the development (non-minified) versions of all scripts and CSS, and disables compression and concatenation, |
|
7 |
* define('CONCATENATE_SCRIPTS', false); disables compression and concatenation of scripts and CSS, |
|
8 |
* define('COMPRESS_SCRIPTS', false); disables compression of scripts, |
|
9 |
* define('COMPRESS_CSS', false); disables compression of CSS, |
|
10 |
* define('ENFORCE_GZIP', true); forces gzip for compression (default is deflate). |
|
11 |
* |
|
12 |
* The globals $concatenate_scripts, $compress_scripts and $compress_css can be set by plugins |
|
13 |
* to temporarily override the above settings. Also a compression test is run once and the result is saved |
|
14 |
* as option 'can_compress_scripts' (0/1). The test will run again if that option is deleted. |
|
15 |
* |
|
16 |
* @package WordPress |
|
17 |
*/ |
|
18 |
||
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
19 |
/** WordPress Dependency Class */ |
16 | 20 |
require ABSPATH . WPINC . '/class-wp-dependency.php'; |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
21 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
22 |
/** WordPress Dependencies Class */ |
16 | 23 |
require ABSPATH . WPINC . '/class.wp-dependencies.php'; |
0 | 24 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
25 |
/** WordPress Scripts Class */ |
16 | 26 |
require ABSPATH . WPINC . '/class.wp-scripts.php'; |
0 | 27 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
28 |
/** WordPress Scripts Functions */ |
16 | 29 |
require ABSPATH . WPINC . '/functions.wp-scripts.php'; |
0 | 30 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
31 |
/** WordPress Styles Class */ |
16 | 32 |
require ABSPATH . WPINC . '/class.wp-styles.php'; |
0 | 33 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
34 |
/** WordPress Styles Functions */ |
16 | 35 |
require ABSPATH . WPINC . '/functions.wp-styles.php'; |
0 | 36 |
|
37 |
/** |
|
9 | 38 |
* Registers TinyMCE scripts. |
39 |
* |
|
40 |
* @since 5.0.0 |
|
41 |
* |
|
16 | 42 |
* @param WP_Scripts $scripts WP_Scripts object. |
43 |
* @param bool $force_uncompressed Whether to forcibly prevent gzip compression. Default false. |
|
9 | 44 |
*/ |
16 | 45 |
function wp_register_tinymce_scripts( $scripts, $force_uncompressed = false ) { |
9 | 46 |
global $tinymce_version, $concatenate_scripts, $compress_scripts; |
47 |
$suffix = wp_scripts_get_suffix(); |
|
48 |
$dev_suffix = wp_scripts_get_suffix( 'dev' ); |
|
49 |
||
50 |
script_concat_settings(); |
|
51 |
||
52 |
$compressed = $compress_scripts && $concatenate_scripts && isset( $_SERVER['HTTP_ACCEPT_ENCODING'] ) |
|
16 | 53 |
&& false !== stripos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) && ! $force_uncompressed; |
9 | 54 |
|
16 | 55 |
// Load tinymce.js when running from /src, otherwise load wp-tinymce.js.gz (in production) |
56 |
// or tinymce.min.js (when SCRIPT_DEBUG is true). |
|
9 | 57 |
if ( $compressed ) { |
58 |
$scripts->add( 'wp-tinymce', includes_url( 'js/tinymce/' ) . 'wp-tinymce.js', array(), $tinymce_version ); |
|
59 |
} else { |
|
60 |
$scripts->add( 'wp-tinymce-root', includes_url( 'js/tinymce/' ) . "tinymce$dev_suffix.js", array(), $tinymce_version ); |
|
61 |
$scripts->add( 'wp-tinymce', includes_url( 'js/tinymce/' ) . "plugins/compat3x/plugin$dev_suffix.js", array( 'wp-tinymce-root' ), $tinymce_version ); |
|
62 |
} |
|
63 |
||
64 |
$scripts->add( 'wp-tinymce-lists', includes_url( "js/tinymce/plugins/lists/plugin$suffix.js" ), array( 'wp-tinymce' ), $tinymce_version ); |
|
65 |
} |
|
66 |
||
67 |
/** |
|
68 |
* Registers all the WordPress vendor scripts that are in the standardized |
|
69 |
* `js/dist/vendor/` location. |
|
70 |
* |
|
71 |
* For the order of `$scripts->add` see `wp_default_scripts`. |
|
72 |
* |
|
73 |
* @since 5.0.0 |
|
74 |
* |
|
75 |
* @param WP_Scripts $scripts WP_Scripts object. |
|
76 |
*/ |
|
16 | 77 |
function wp_default_packages_vendor( $scripts ) { |
9 | 78 |
global $wp_locale; |
79 |
||
80 |
$suffix = wp_scripts_get_suffix(); |
|
81 |
||
82 |
$vendor_scripts = array( |
|
18 | 83 |
'react' => array( 'wp-polyfill' ), |
84 |
'react-dom' => array( 'react' ), |
|
85 |
'regenerator-runtime', |
|
9 | 86 |
'moment', |
87 |
'lodash', |
|
88 |
'wp-polyfill-fetch', |
|
89 |
'wp-polyfill-formdata', |
|
90 |
'wp-polyfill-node-contains', |
|
16 | 91 |
'wp-polyfill-url', |
92 |
'wp-polyfill-dom-rect', |
|
9 | 93 |
'wp-polyfill-element-closest', |
18 | 94 |
'wp-polyfill-object-fit', |
95 |
'wp-polyfill' => array( 'regenerator-runtime' ), |
|
9 | 96 |
); |
97 |
||
98 |
$vendor_scripts_versions = array( |
|
18 | 99 |
'react' => '16.13.1', |
100 |
'react-dom' => '16.13.1', |
|
101 |
'regenerator-runtime' => '0.13.7', |
|
102 |
'moment' => '2.29.1', |
|
103 |
'lodash' => '4.17.19', |
|
9 | 104 |
'wp-polyfill-fetch' => '3.0.0', |
18 | 105 |
'wp-polyfill-formdata' => '4.0.0', |
106 |
'wp-polyfill-node-contains' => '3.105.0', |
|
16 | 107 |
'wp-polyfill-url' => '3.6.4', |
18 | 108 |
'wp-polyfill-dom-rect' => '3.104.0', |
9 | 109 |
'wp-polyfill-element-closest' => '2.0.2', |
18 | 110 |
'wp-polyfill-object-fit' => '2.3.5', |
111 |
'wp-polyfill' => '3.15.0', |
|
9 | 112 |
); |
113 |
||
114 |
foreach ( $vendor_scripts as $handle => $dependencies ) { |
|
115 |
if ( is_string( $dependencies ) ) { |
|
116 |
$handle = $dependencies; |
|
117 |
$dependencies = array(); |
|
118 |
} |
|
119 |
||
120 |
$path = "/wp-includes/js/dist/vendor/$handle$suffix.js"; |
|
121 |
$version = $vendor_scripts_versions[ $handle ]; |
|
122 |
||
123 |
$scripts->add( $handle, $path, $dependencies, $version, 1 ); |
|
124 |
} |
|
125 |
||
126 |
did_action( 'init' ) && $scripts->add_inline_script( 'lodash', 'window.lodash = _.noConflict();' ); |
|
127 |
||
128 |
did_action( 'init' ) && $scripts->add_inline_script( |
|
129 |
'moment', |
|
130 |
sprintf( |
|
16 | 131 |
"moment.updateLocale( '%s', %s );", |
9 | 132 |
get_user_locale(), |
133 |
wp_json_encode( |
|
134 |
array( |
|
135 |
'months' => array_values( $wp_locale->month ), |
|
136 |
'monthsShort' => array_values( $wp_locale->month_abbrev ), |
|
137 |
'weekdays' => array_values( $wp_locale->weekday ), |
|
138 |
'weekdaysShort' => array_values( $wp_locale->weekday_abbrev ), |
|
139 |
'week' => array( |
|
140 |
'dow' => (int) get_option( 'start_of_week', 0 ), |
|
141 |
), |
|
142 |
'longDateFormat' => array( |
|
18 | 143 |
'LT' => get_option( 'time_format', __( 'g:i a' ) ), |
9 | 144 |
'LTS' => null, |
145 |
'L' => null, |
|
18 | 146 |
'LL' => get_option( 'date_format', __( 'F j, Y' ) ), |
147 |
'LLL' => __( 'F j, Y g:i a' ), |
|
9 | 148 |
'LLLL' => null, |
149 |
), |
|
150 |
) |
|
151 |
) |
|
152 |
), |
|
153 |
'after' |
|
154 |
); |
|
155 |
} |
|
156 |
||
157 |
/** |
|
158 |
* Returns contents of an inline script used in appending polyfill scripts for |
|
159 |
* browsers which fail the provided tests. The provided array is a mapping from |
|
160 |
* a condition to verify feature support to its polyfill script handle. |
|
161 |
* |
|
162 |
* @since 5.0.0 |
|
163 |
* |
|
164 |
* @param WP_Scripts $scripts WP_Scripts object. |
|
165 |
* @param array $tests Features to detect. |
|
166 |
* @return string Conditional polyfill inline script. |
|
167 |
*/ |
|
16 | 168 |
function wp_get_script_polyfill( $scripts, $tests ) { |
9 | 169 |
$polyfill = ''; |
170 |
foreach ( $tests as $test => $handle ) { |
|
171 |
if ( ! array_key_exists( $handle, $scripts->registered ) ) { |
|
172 |
continue; |
|
173 |
} |
|
174 |
||
175 |
$src = $scripts->registered[ $handle ]->src; |
|
176 |
$ver = $scripts->registered[ $handle ]->ver; |
|
177 |
||
178 |
if ( ! preg_match( '|^(https?:)?//|', $src ) && ! ( $scripts->content_url && 0 === strpos( $src, $scripts->content_url ) ) ) { |
|
179 |
$src = $scripts->base_url . $src; |
|
180 |
} |
|
181 |
||
182 |
if ( ! empty( $ver ) ) { |
|
183 |
$src = add_query_arg( 'ver', $ver, $src ); |
|
184 |
} |
|
185 |
||
186 |
/** This filter is documented in wp-includes/class.wp-scripts.php */ |
|
187 |
$src = esc_url( apply_filters( 'script_loader_src', $src, $handle ) ); |
|
188 |
||
189 |
if ( ! $src ) { |
|
190 |
continue; |
|
191 |
} |
|
192 |
||
193 |
$polyfill .= ( |
|
194 |
// Test presence of feature... |
|
195 |
'( ' . $test . ' ) || ' . |
|
16 | 196 |
/* |
197 |
* ...appending polyfill on any failures. Cautious viewers may balk |
|
198 |
* at the `document.write`. Its caveat of synchronous mid-stream |
|
199 |
* blocking write is exactly the behavior we need though. |
|
200 |
*/ |
|
9 | 201 |
'document.write( \'<script src="' . |
202 |
$src . |
|
203 |
'"></scr\' + \'ipt>\' );' |
|
204 |
); |
|
205 |
} |
|
206 |
||
207 |
return $polyfill; |
|
208 |
} |
|
209 |
||
210 |
/** |
|
211 |
* Registers all the WordPress packages scripts that are in the standardized |
|
212 |
* `js/dist/` location. |
|
213 |
* |
|
214 |
* For the order of `$scripts->add` see `wp_default_scripts`. |
|
215 |
* |
|
216 |
* @since 5.0.0 |
|
217 |
* |
|
218 |
* @param WP_Scripts $scripts WP_Scripts object. |
|
219 |
*/ |
|
16 | 220 |
function wp_default_packages_scripts( $scripts ) { |
9 | 221 |
$suffix = wp_scripts_get_suffix(); |
222 |
||
16 | 223 |
// Expects multidimensional array like: |
224 |
// 'a11y.js' => array('dependencies' => array(...), 'version' => '...'), |
|
225 |
// 'annotations.js' => array('dependencies' => array(...), 'version' => '...'), |
|
226 |
// 'api-fetch.js' => array(... |
|
227 |
$assets = include ABSPATH . WPINC . '/assets/script-loader-packages.php'; |
|
228 |
||
229 |
foreach ( $assets as $package_name => $package_data ) { |
|
230 |
$basename = basename( $package_name, '.js' ); |
|
231 |
$handle = 'wp-' . $basename; |
|
232 |
$path = "/wp-includes/js/dist/{$basename}{$suffix}.js"; |
|
9 | 233 |
|
16 | 234 |
if ( ! empty( $package_data['dependencies'] ) ) { |
235 |
$dependencies = $package_data['dependencies']; |
|
236 |
} else { |
|
237 |
$dependencies = array(); |
|
238 |
} |
|
9 | 239 |
|
16 | 240 |
// Add dependencies that cannot be detected and generated by build tools. |
241 |
switch ( $handle ) { |
|
242 |
case 'wp-block-library': |
|
243 |
array_push( $dependencies, 'editor' ); |
|
244 |
break; |
|
245 |
case 'wp-edit-post': |
|
246 |
array_push( $dependencies, 'media-models', 'media-views', 'postbox', 'wp-dom-ready' ); |
|
247 |
break; |
|
248 |
} |
|
9 | 249 |
|
16 | 250 |
$scripts->add( $handle, $path, $dependencies, $package_data['version'], 1 ); |
9 | 251 |
|
16 | 252 |
if ( in_array( 'wp-i18n', $dependencies, true ) ) { |
9 | 253 |
$scripts->set_translations( $handle ); |
254 |
} |
|
18 | 255 |
|
256 |
/* |
|
257 |
* Manually set the text direction localization after wp-i18n is printed. |
|
258 |
* This ensures that wp.i18n.isRTL() returns true in RTL languages. |
|
259 |
* We cannot use $scripts->set_translations( 'wp-i18n' ) to do this |
|
260 |
* because WordPress prints a script's translations *before* the script, |
|
261 |
* which means, in the case of wp-i18n, that wp.i18n.setLocaleData() |
|
262 |
* is called before wp.i18n is defined. |
|
263 |
*/ |
|
264 |
if ( 'wp-i18n' === $handle ) { |
|
265 |
$ltr = _x( 'ltr', 'text direction' ); |
|
266 |
$script = sprintf( "wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ '%s' ] } );", $ltr ); |
|
267 |
$scripts->add_inline_script( $handle, $script, 'after' ); |
|
268 |
} |
|
9 | 269 |
} |
270 |
} |
|
271 |
||
272 |
/** |
|
273 |
* Adds inline scripts required for the WordPress JavaScript packages. |
|
274 |
* |
|
275 |
* @since 5.0.0 |
|
276 |
* |
|
277 |
* @param WP_Scripts $scripts WP_Scripts object. |
|
278 |
*/ |
|
16 | 279 |
function wp_default_packages_inline_scripts( $scripts ) { |
9 | 280 |
global $wp_locale; |
281 |
||
282 |
if ( isset( $scripts->registered['wp-api-fetch'] ) ) { |
|
283 |
$scripts->registered['wp-api-fetch']->deps[] = 'wp-hooks'; |
|
284 |
} |
|
285 |
$scripts->add_inline_script( |
|
286 |
'wp-api-fetch', |
|
287 |
sprintf( |
|
16 | 288 |
'wp.apiFetch.use( wp.apiFetch.createRootURLMiddleware( "%s" ) );', |
289 |
esc_url_raw( get_rest_url() ) |
|
9 | 290 |
), |
291 |
'after' |
|
292 |
); |
|
293 |
$scripts->add_inline_script( |
|
294 |
'wp-api-fetch', |
|
16 | 295 |
implode( |
296 |
"\n", |
|
297 |
array( |
|
298 |
sprintf( |
|
299 |
'wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware( "%s" );', |
|
300 |
( wp_installing() && ! is_multisite() ) ? '' : wp_create_nonce( 'wp_rest' ) |
|
301 |
), |
|
302 |
'wp.apiFetch.use( wp.apiFetch.nonceMiddleware );', |
|
303 |
'wp.apiFetch.use( wp.apiFetch.mediaUploadMiddleware );', |
|
304 |
sprintf( |
|
305 |
'wp.apiFetch.nonceEndpoint = "%s";', |
|
306 |
admin_url( 'admin-ajax.php?action=rest-nonce' ) |
|
307 |
), |
|
308 |
) |
|
9 | 309 |
), |
310 |
'after' |
|
311 |
); |
|
312 |
$scripts->add_inline_script( |
|
313 |
'wp-data', |
|
314 |
implode( |
|
315 |
"\n", |
|
316 |
array( |
|
317 |
'( function() {', |
|
318 |
' var userId = ' . get_current_user_ID() . ';', |
|
319 |
' var storageKey = "WP_DATA_USER_" + userId;', |
|
320 |
' wp.data', |
|
16 | 321 |
' .use( wp.data.plugins.persistence, { storageKey: storageKey } );', |
9 | 322 |
' wp.data.plugins.persistence.__unstableMigrate( { storageKey: storageKey } );', |
323 |
'} )();', |
|
324 |
) |
|
325 |
) |
|
326 |
); |
|
327 |
||
18 | 328 |
// Calculate the timezone abbr (EDT, PST) if possible. |
329 |
$timezone_string = get_option( 'timezone_string', 'UTC' ); |
|
330 |
$timezone_abbr = ''; |
|
331 |
||
332 |
if ( ! empty( $timezone_string ) ) { |
|
333 |
$timezone_date = new DateTime( null, new DateTimeZone( $timezone_string ) ); |
|
334 |
$timezone_abbr = $timezone_date->format( 'T' ); |
|
335 |
} |
|
336 |
||
9 | 337 |
$scripts->add_inline_script( |
338 |
'wp-date', |
|
339 |
sprintf( |
|
340 |
'wp.date.setSettings( %s );', |
|
341 |
wp_json_encode( |
|
342 |
array( |
|
343 |
'l10n' => array( |
|
344 |
'locale' => get_user_locale(), |
|
345 |
'months' => array_values( $wp_locale->month ), |
|
346 |
'monthsShort' => array_values( $wp_locale->month_abbrev ), |
|
347 |
'weekdays' => array_values( $wp_locale->weekday ), |
|
348 |
'weekdaysShort' => array_values( $wp_locale->weekday_abbrev ), |
|
349 |
'meridiem' => (object) $wp_locale->meridiem, |
|
350 |
'relative' => array( |
|
16 | 351 |
/* translators: %s: Duration. */ |
9 | 352 |
'future' => __( '%s from now' ), |
16 | 353 |
/* translators: %s: Duration. */ |
9 | 354 |
'past' => __( '%s ago' ), |
355 |
), |
|
356 |
), |
|
357 |
'formats' => array( |
|
18 | 358 |
/* translators: Time format, see https://www.php.net/manual/datetime.format.php */ |
9 | 359 |
'time' => get_option( 'time_format', __( 'g:i a' ) ), |
18 | 360 |
/* translators: Date format, see https://www.php.net/manual/datetime.format.php */ |
9 | 361 |
'date' => get_option( 'date_format', __( 'F j, Y' ) ), |
18 | 362 |
/* translators: Date/Time format, see https://www.php.net/manual/datetime.format.php */ |
9 | 363 |
'datetime' => __( 'F j, Y g:i a' ), |
18 | 364 |
/* translators: Abbreviated date/time format, see https://www.php.net/manual/datetime.format.php */ |
9 | 365 |
'datetimeAbbreviated' => __( 'M j, Y g:i a' ), |
366 |
), |
|
367 |
'timezone' => array( |
|
368 |
'offset' => get_option( 'gmt_offset', 0 ), |
|
18 | 369 |
'string' => $timezone_string, |
370 |
'abbr' => $timezone_abbr, |
|
9 | 371 |
), |
372 |
) |
|
373 |
) |
|
374 |
), |
|
375 |
'after' |
|
376 |
); |
|
377 |
||
378 |
// Loading the old editor and its config to ensure the classic block works as expected. |
|
379 |
$scripts->add_inline_script( |
|
380 |
'editor', |
|
381 |
'window.wp.oldEditor = window.wp.editor;', |
|
382 |
'after' |
|
383 |
); |
|
18 | 384 |
|
385 |
/* |
|
386 |
* wp-editor module is exposed as window.wp.editor. |
|
387 |
* Problem: there is quite some code expecting window.wp.oldEditor object available under window.wp.editor. |
|
388 |
* Solution: fuse the two objects together to maintain backward compatibility. |
|
389 |
* For more context, see https://github.com/WordPress/gutenberg/issues/33203. |
|
390 |
*/ |
|
391 |
$scripts->add_inline_script( |
|
392 |
'wp-editor', |
|
393 |
'Object.assign( window.wp.editor, window.wp.oldEditor );', |
|
394 |
'after' |
|
395 |
); |
|
9 | 396 |
} |
397 |
||
398 |
/** |
|
399 |
* Adds inline scripts required for the TinyMCE in the block editor. |
|
400 |
* |
|
401 |
* These TinyMCE init settings are used to extend and override the default settings |
|
402 |
* from `_WP_Editors::default_settings()` for the Classic block. |
|
403 |
* |
|
404 |
* @since 5.0.0 |
|
405 |
* |
|
406 |
* @global WP_Scripts $wp_scripts |
|
407 |
*/ |
|
408 |
function wp_tinymce_inline_scripts() { |
|
409 |
global $wp_scripts; |
|
410 |
||
411 |
/** This filter is documented in wp-includes/class-wp-editor.php */ |
|
412 |
$editor_settings = apply_filters( 'wp_editor_settings', array( 'tinymce' => true ), 'classic-block' ); |
|
413 |
||
414 |
$tinymce_plugins = array( |
|
415 |
'charmap', |
|
416 |
'colorpicker', |
|
417 |
'hr', |
|
418 |
'lists', |
|
419 |
'media', |
|
420 |
'paste', |
|
421 |
'tabfocus', |
|
422 |
'textcolor', |
|
423 |
'fullscreen', |
|
424 |
'wordpress', |
|
425 |
'wpautoresize', |
|
426 |
'wpeditimage', |
|
427 |
'wpemoji', |
|
428 |
'wpgallery', |
|
429 |
'wplink', |
|
430 |
'wpdialogs', |
|
431 |
'wptextpattern', |
|
432 |
'wpview', |
|
433 |
); |
|
434 |
||
16 | 435 |
/** This filter is documented in wp-includes/class-wp-editor.php */ |
9 | 436 |
$tinymce_plugins = apply_filters( 'tiny_mce_plugins', $tinymce_plugins, 'classic-block' ); |
437 |
$tinymce_plugins = array_unique( $tinymce_plugins ); |
|
438 |
||
439 |
$disable_captions = false; |
|
440 |
// Runs after `tiny_mce_plugins` but before `mce_buttons`. |
|
441 |
/** This filter is documented in wp-admin/includes/media.php */ |
|
442 |
if ( apply_filters( 'disable_captions', '' ) ) { |
|
443 |
$disable_captions = true; |
|
444 |
} |
|
445 |
||
446 |
$toolbar1 = array( |
|
447 |
'formatselect', |
|
448 |
'bold', |
|
449 |
'italic', |
|
450 |
'bullist', |
|
451 |
'numlist', |
|
452 |
'blockquote', |
|
453 |
'alignleft', |
|
454 |
'aligncenter', |
|
455 |
'alignright', |
|
456 |
'link', |
|
457 |
'unlink', |
|
458 |
'wp_more', |
|
459 |
'spellchecker', |
|
460 |
'wp_add_media', |
|
461 |
'wp_adv', |
|
462 |
); |
|
463 |
||
16 | 464 |
/** This filter is documented in wp-includes/class-wp-editor.php */ |
9 | 465 |
$toolbar1 = apply_filters( 'mce_buttons', $toolbar1, 'classic-block' ); |
466 |
||
467 |
$toolbar2 = array( |
|
468 |
'strikethrough', |
|
469 |
'hr', |
|
470 |
'forecolor', |
|
471 |
'pastetext', |
|
472 |
'removeformat', |
|
473 |
'charmap', |
|
474 |
'outdent', |
|
475 |
'indent', |
|
476 |
'undo', |
|
477 |
'redo', |
|
478 |
'wp_help', |
|
479 |
); |
|
480 |
||
16 | 481 |
/** This filter is documented in wp-includes/class-wp-editor.php */ |
9 | 482 |
$toolbar2 = apply_filters( 'mce_buttons_2', $toolbar2, 'classic-block' ); |
16 | 483 |
/** This filter is documented in wp-includes/class-wp-editor.php */ |
9 | 484 |
$toolbar3 = apply_filters( 'mce_buttons_3', array(), 'classic-block' ); |
16 | 485 |
/** This filter is documented in wp-includes/class-wp-editor.php */ |
9 | 486 |
$toolbar4 = apply_filters( 'mce_buttons_4', array(), 'classic-block' ); |
16 | 487 |
/** This filter is documented in wp-includes/class-wp-editor.php */ |
9 | 488 |
$external_plugins = apply_filters( 'mce_external_plugins', array(), 'classic-block' ); |
489 |
||
490 |
$tinymce_settings = array( |
|
491 |
'plugins' => implode( ',', $tinymce_plugins ), |
|
492 |
'toolbar1' => implode( ',', $toolbar1 ), |
|
493 |
'toolbar2' => implode( ',', $toolbar2 ), |
|
494 |
'toolbar3' => implode( ',', $toolbar3 ), |
|
495 |
'toolbar4' => implode( ',', $toolbar4 ), |
|
496 |
'external_plugins' => wp_json_encode( $external_plugins ), |
|
497 |
'classic_block_editor' => true, |
|
498 |
); |
|
499 |
||
500 |
if ( $disable_captions ) { |
|
501 |
$tinymce_settings['wpeditimage_disable_captions'] = true; |
|
502 |
} |
|
503 |
||
504 |
if ( ! empty( $editor_settings['tinymce'] ) && is_array( $editor_settings['tinymce'] ) ) { |
|
505 |
array_merge( $tinymce_settings, $editor_settings['tinymce'] ); |
|
506 |
} |
|
507 |
||
16 | 508 |
/** This filter is documented in wp-includes/class-wp-editor.php */ |
9 | 509 |
$tinymce_settings = apply_filters( 'tiny_mce_before_init', $tinymce_settings, 'classic-block' ); |
510 |
||
511 |
// Do "by hand" translation from PHP array to js object. |
|
512 |
// Prevents breakage in some custom settings. |
|
513 |
$init_obj = ''; |
|
514 |
foreach ( $tinymce_settings as $key => $value ) { |
|
515 |
if ( is_bool( $value ) ) { |
|
516 |
$val = $value ? 'true' : 'false'; |
|
517 |
$init_obj .= $key . ':' . $val . ','; |
|
518 |
continue; |
|
519 |
} elseif ( ! empty( $value ) && is_string( $value ) && ( |
|
16 | 520 |
( '{' === $value[0] && '}' === $value[ strlen( $value ) - 1 ] ) || |
521 |
( '[' === $value[0] && ']' === $value[ strlen( $value ) - 1 ] ) || |
|
9 | 522 |
preg_match( '/^\(?function ?\(/', $value ) ) ) { |
523 |
$init_obj .= $key . ':' . $value . ','; |
|
524 |
continue; |
|
525 |
} |
|
526 |
$init_obj .= $key . ':"' . $value . '",'; |
|
527 |
} |
|
528 |
||
529 |
$init_obj = '{' . trim( $init_obj, ' ,' ) . '}'; |
|
530 |
||
531 |
$script = 'window.wpEditorL10n = { |
|
532 |
tinymce: { |
|
533 |
baseURL: ' . wp_json_encode( includes_url( 'js/tinymce' ) ) . ', |
|
534 |
suffix: ' . ( SCRIPT_DEBUG ? '""' : '".min"' ) . ', |
|
535 |
settings: ' . $init_obj . ', |
|
536 |
} |
|
537 |
}'; |
|
538 |
||
539 |
$wp_scripts->add_inline_script( 'wp-block-library', $script, 'before' ); |
|
540 |
} |
|
541 |
||
542 |
/** |
|
543 |
* Registers all the WordPress packages scripts. |
|
544 |
* |
|
545 |
* @since 5.0.0 |
|
546 |
* |
|
547 |
* @param WP_Scripts $scripts WP_Scripts object. |
|
548 |
*/ |
|
16 | 549 |
function wp_default_packages( $scripts ) { |
9 | 550 |
wp_default_packages_vendor( $scripts ); |
551 |
wp_register_tinymce_scripts( $scripts ); |
|
552 |
wp_default_packages_scripts( $scripts ); |
|
553 |
||
554 |
if ( did_action( 'init' ) ) { |
|
555 |
wp_default_packages_inline_scripts( $scripts ); |
|
556 |
} |
|
557 |
} |
|
558 |
||
559 |
/** |
|
560 |
* Returns the suffix that can be used for the scripts. |
|
561 |
* |
|
562 |
* There are two suffix types, the normal one and the dev suffix. |
|
563 |
* |
|
564 |
* @since 5.0.0 |
|
565 |
* |
|
566 |
* @param string $type The type of suffix to retrieve. |
|
567 |
* @return string The script suffix. |
|
568 |
*/ |
|
569 |
function wp_scripts_get_suffix( $type = '' ) { |
|
570 |
static $suffixes; |
|
571 |
||
16 | 572 |
if ( null === $suffixes ) { |
573 |
// Include an unmodified $wp_version. |
|
574 |
require ABSPATH . WPINC . '/version.php'; |
|
9 | 575 |
|
576 |
$develop_src = false !== strpos( $wp_version, '-src' ); |
|
577 |
||
578 |
if ( ! defined( 'SCRIPT_DEBUG' ) ) { |
|
579 |
define( 'SCRIPT_DEBUG', $develop_src ); |
|
580 |
} |
|
581 |
$suffix = SCRIPT_DEBUG ? '' : '.min'; |
|
582 |
$dev_suffix = $develop_src ? '' : '.min'; |
|
583 |
||
584 |
$suffixes = array( |
|
585 |
'suffix' => $suffix, |
|
586 |
'dev_suffix' => $dev_suffix, |
|
587 |
); |
|
588 |
} |
|
589 |
||
16 | 590 |
if ( 'dev' === $type ) { |
9 | 591 |
return $suffixes['dev_suffix']; |
592 |
} |
|
593 |
||
594 |
return $suffixes['suffix']; |
|
595 |
} |
|
596 |
||
597 |
/** |
|
0 | 598 |
* Register all WordPress scripts. |
599 |
* |
|
600 |
* Localizes some of them. |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
601 |
* args order: `$scripts->add( 'handle', 'url', 'dependencies', 'query-string', 1 );` |
0 | 602 |
* when last arg === 1 queues the script for the footer |
603 |
* |
|
604 |
* @since 2.6.0 |
|
605 |
* |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
606 |
* @param WP_Scripts $scripts WP_Scripts object. |
0 | 607 |
*/ |
16 | 608 |
function wp_default_scripts( $scripts ) { |
9 | 609 |
$suffix = wp_scripts_get_suffix(); |
610 |
$dev_suffix = wp_scripts_get_suffix( 'dev' ); |
|
16 | 611 |
$guessurl = site_url(); |
0 | 612 |
|
16 | 613 |
if ( ! $guessurl ) { |
0 | 614 |
$guessed_url = true; |
9 | 615 |
$guessurl = wp_guess_url(); |
0 | 616 |
} |
617 |
||
9 | 618 |
$scripts->base_url = $guessurl; |
619 |
$scripts->content_url = defined( 'WP_CONTENT_URL' ) ? WP_CONTENT_URL : ''; |
|
0 | 620 |
$scripts->default_version = get_bloginfo( 'version' ); |
9 | 621 |
$scripts->default_dirs = array( '/wp-admin/js/', '/wp-includes/js/' ); |
0 | 622 |
|
623 |
$scripts->add( 'utils', "/wp-includes/js/utils$suffix.js" ); |
|
9 | 624 |
did_action( 'init' ) && $scripts->localize( |
625 |
'utils', |
|
626 |
'userSettings', |
|
627 |
array( |
|
628 |
'url' => (string) SITECOOKIEPATH, |
|
629 |
'uid' => (string) get_current_user_id(), |
|
630 |
'time' => (string) time(), |
|
631 |
'secure' => (string) ( 'https' === parse_url( site_url(), PHP_URL_SCHEME ) ), |
|
632 |
) |
|
633 |
); |
|
0 | 634 |
|
9 | 635 |
$scripts->add( 'common', "/wp-admin/js/common$suffix.js", array( 'jquery', 'hoverIntent', 'utils' ), false, 1 ); |
16 | 636 |
$scripts->set_translations( 'common' ); |
0 | 637 |
|
9 | 638 |
$scripts->add( 'wp-sanitize', "/wp-includes/js/wp-sanitize$suffix.js", array(), false, 1 ); |
639 |
||
0 | 640 |
$scripts->add( 'sack', "/wp-includes/js/tw-sack$suffix.js", array(), '1.6.1', 1 ); |
641 |
||
642 |
$scripts->add( 'quicktags', "/wp-includes/js/quicktags$suffix.js", array(), false, 1 ); |
|
9 | 643 |
did_action( 'init' ) && $scripts->localize( |
644 |
'quicktags', |
|
645 |
'quicktagsL10n', |
|
646 |
array( |
|
647 |
'closeAllOpenTags' => __( 'Close all open tags' ), |
|
648 |
'closeTags' => __( 'close tags' ), |
|
649 |
'enterURL' => __( 'Enter the URL' ), |
|
650 |
'enterImageURL' => __( 'Enter the URL of the image' ), |
|
651 |
'enterImageDescription' => __( 'Enter a description of the image' ), |
|
652 |
'textdirection' => __( 'text direction' ), |
|
653 |
'toggleTextdirection' => __( 'Toggle Editor Text Direction' ), |
|
654 |
'dfw' => __( 'Distraction-free writing mode' ), |
|
655 |
'strong' => __( 'Bold' ), |
|
656 |
'strongClose' => __( 'Close bold tag' ), |
|
657 |
'em' => __( 'Italic' ), |
|
658 |
'emClose' => __( 'Close italic tag' ), |
|
659 |
'link' => __( 'Insert link' ), |
|
660 |
'blockquote' => __( 'Blockquote' ), |
|
661 |
'blockquoteClose' => __( 'Close blockquote tag' ), |
|
662 |
'del' => __( 'Deleted text (strikethrough)' ), |
|
663 |
'delClose' => __( 'Close deleted text tag' ), |
|
664 |
'ins' => __( 'Inserted text' ), |
|
665 |
'insClose' => __( 'Close inserted text tag' ), |
|
666 |
'image' => __( 'Insert image' ), |
|
667 |
'ul' => __( 'Bulleted list' ), |
|
668 |
'ulClose' => __( 'Close bulleted list tag' ), |
|
669 |
'ol' => __( 'Numbered list' ), |
|
670 |
'olClose' => __( 'Close numbered list tag' ), |
|
671 |
'li' => __( 'List item' ), |
|
672 |
'liClose' => __( 'Close list item tag' ), |
|
673 |
'code' => __( 'Code' ), |
|
674 |
'codeClose' => __( 'Close code tag' ), |
|
675 |
'more' => __( 'Insert Read More tag' ), |
|
676 |
) |
|
677 |
); |
|
0 | 678 |
|
9 | 679 |
$scripts->add( 'colorpicker', "/wp-includes/js/colorpicker$suffix.js", array( 'prototype' ), '3517m' ); |
0 | 680 |
|
9 | 681 |
$scripts->add( 'editor', "/wp-admin/js/editor$suffix.js", array( 'utils', 'jquery' ), false, 1 ); |
682 |
||
683 |
$scripts->add( 'clipboard', "/wp-includes/js/clipboard$suffix.js", array(), false, 1 ); |
|
0 | 684 |
|
9 | 685 |
$scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array( 'jquery' ), false, 1 ); |
686 |
did_action( 'init' ) && $scripts->localize( |
|
687 |
'wp-ajax-response', |
|
688 |
'wpAjax', |
|
689 |
array( |
|
690 |
'noPerm' => __( 'Sorry, you are not allowed to do that.' ), |
|
691 |
'broken' => __( 'Something went wrong.' ), |
|
692 |
) |
|
693 |
); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
694 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
695 |
$scripts->add( 'wp-api-request', "/wp-includes/js/api-request$suffix.js", array( 'jquery' ), false, 1 ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
696 |
// `wpApiSettings` is also used by `wp-api`, which depends on this script. |
9 | 697 |
did_action( 'init' ) && $scripts->localize( |
698 |
'wp-api-request', |
|
699 |
'wpApiSettings', |
|
700 |
array( |
|
701 |
'root' => esc_url_raw( get_rest_url() ), |
|
702 |
'nonce' => ( wp_installing() && ! is_multisite() ) ? '' : wp_create_nonce( 'wp_rest' ), |
|
703 |
'versionString' => 'wp/v2/', |
|
704 |
) |
|
705 |
); |
|
0 | 706 |
|
18 | 707 |
$scripts->add( 'wp-pointer', "/wp-includes/js/wp-pointer$suffix.js", array( 'jquery-ui-core' ), false, 1 ); |
16 | 708 |
$scripts->set_translations( 'wp-pointer' ); |
0 | 709 |
|
9 | 710 |
$scripts->add( 'autosave', "/wp-includes/js/autosave$suffix.js", array( 'heartbeat' ), false, 1 ); |
0 | 711 |
|
9 | 712 |
$scripts->add( 'heartbeat', "/wp-includes/js/heartbeat$suffix.js", array( 'jquery', 'wp-hooks' ), false, 1 ); |
713 |
did_action( 'init' ) && $scripts->localize( |
|
714 |
'heartbeat', |
|
715 |
'heartbeatSettings', |
|
5 | 716 |
/** |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
717 |
* Filters the Heartbeat settings. |
5 | 718 |
* |
719 |
* @since 3.6.0 |
|
720 |
* |
|
721 |
* @param array $settings Heartbeat settings array. |
|
722 |
*/ |
|
0 | 723 |
apply_filters( 'heartbeat_settings', array() ) |
724 |
); |
|
725 |
||
9 | 726 |
$scripts->add( 'wp-auth-check', "/wp-includes/js/wp-auth-check$suffix.js", array( 'heartbeat' ), false, 1 ); |
16 | 727 |
$scripts->set_translations( 'wp-auth-check' ); |
0 | 728 |
|
729 |
$scripts->add( 'wp-lists', "/wp-includes/js/wp-lists$suffix.js", array( 'wp-ajax-response', 'jquery-color' ), false, 1 ); |
|
730 |
||
731 |
// WordPress no longer uses or bundles Prototype or script.aculo.us. These are now pulled from an external source. |
|
9 | 732 |
$scripts->add( 'prototype', 'https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js', array(), '1.7.1' ); |
733 |
$scripts->add( 'scriptaculous-root', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/scriptaculous.js', array( 'prototype' ), '1.9.0' ); |
|
734 |
$scripts->add( 'scriptaculous-builder', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/builder.js', array( 'scriptaculous-root' ), '1.9.0' ); |
|
735 |
$scripts->add( 'scriptaculous-dragdrop', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/dragdrop.js', array( 'scriptaculous-builder', 'scriptaculous-effects' ), '1.9.0' ); |
|
736 |
$scripts->add( 'scriptaculous-effects', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/effects.js', array( 'scriptaculous-root' ), '1.9.0' ); |
|
737 |
$scripts->add( 'scriptaculous-slider', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/slider.js', array( 'scriptaculous-effects' ), '1.9.0' ); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
738 |
$scripts->add( 'scriptaculous-sound', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/sound.js', array( 'scriptaculous-root' ), '1.9.0' ); |
9 | 739 |
$scripts->add( 'scriptaculous-controls', 'https://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/controls.js', array( 'scriptaculous-root' ), '1.9.0' ); |
740 |
$scripts->add( 'scriptaculous', false, array( 'scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls' ) ); |
|
0 | 741 |
|
16 | 742 |
// Not used in core, replaced by Jcrop.js. |
9 | 743 |
$scripts->add( 'cropper', '/wp-includes/js/crop/cropper.js', array( 'scriptaculous-dragdrop' ) ); |
0 | 744 |
|
16 | 745 |
// jQuery. |
18 | 746 |
// The unminified jquery.js and jquery-migrate.js are included to facilitate debugging. |
747 |
$scripts->add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '3.6.0' ); |
|
748 |
$scripts->add( 'jquery-core', "/wp-includes/js/jquery/jquery$suffix.js", array(), '3.6.0' ); |
|
749 |
$scripts->add( 'jquery-migrate', "/wp-includes/js/jquery/jquery-migrate$suffix.js", array(), '3.3.2' ); |
|
0 | 750 |
|
16 | 751 |
// Full jQuery UI. |
18 | 752 |
// The build process in 1.12.1 has changed significantly. |
753 |
// In order to keep backwards compatibility, and to keep the optimized loading, |
|
754 |
// the source files were flattened and included with some modifications for AMD loading. |
|
755 |
// A notable change is that 'jquery-ui-core' now contains 'jquery-ui-position' and 'jquery-ui-widget'. |
|
756 |
$scripts->add( 'jquery-ui-core', "/wp-includes/js/jquery/ui/core$suffix.js", array( 'jquery' ), '1.12.1', 1 ); |
|
757 |
$scripts->add( 'jquery-effects-core', "/wp-includes/js/jquery/ui/effect$suffix.js", array( 'jquery' ), '1.12.1', 1 ); |
|
758 |
||
759 |
$scripts->add( 'jquery-effects-blind', "/wp-includes/js/jquery/ui/effect-blind$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
760 |
$scripts->add( 'jquery-effects-bounce', "/wp-includes/js/jquery/ui/effect-bounce$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
761 |
$scripts->add( 'jquery-effects-clip', "/wp-includes/js/jquery/ui/effect-clip$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
762 |
$scripts->add( 'jquery-effects-drop', "/wp-includes/js/jquery/ui/effect-drop$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
763 |
$scripts->add( 'jquery-effects-explode', "/wp-includes/js/jquery/ui/effect-explode$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
764 |
$scripts->add( 'jquery-effects-fade', "/wp-includes/js/jquery/ui/effect-fade$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
765 |
$scripts->add( 'jquery-effects-fold', "/wp-includes/js/jquery/ui/effect-fold$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
766 |
$scripts->add( 'jquery-effects-highlight', "/wp-includes/js/jquery/ui/effect-highlight$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
767 |
$scripts->add( 'jquery-effects-puff', "/wp-includes/js/jquery/ui/effect-puff$suffix.js", array( 'jquery-effects-core', 'jquery-effects-scale' ), '1.12.1', 1 ); |
|
768 |
$scripts->add( 'jquery-effects-pulsate', "/wp-includes/js/jquery/ui/effect-pulsate$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
769 |
$scripts->add( 'jquery-effects-scale', "/wp-includes/js/jquery/ui/effect-scale$suffix.js", array( 'jquery-effects-core', 'jquery-effects-size' ), '1.12.1', 1 ); |
|
770 |
$scripts->add( 'jquery-effects-shake', "/wp-includes/js/jquery/ui/effect-shake$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
771 |
$scripts->add( 'jquery-effects-size', "/wp-includes/js/jquery/ui/effect-size$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
772 |
$scripts->add( 'jquery-effects-slide', "/wp-includes/js/jquery/ui/effect-slide$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
773 |
$scripts->add( 'jquery-effects-transfer', "/wp-includes/js/jquery/ui/effect-transfer$suffix.js", array( 'jquery-effects-core' ), '1.12.1', 1 ); |
|
774 |
||
775 |
// Widgets |
|
776 |
$scripts->add( 'jquery-ui-accordion', "/wp-includes/js/jquery/ui/accordion$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
777 |
$scripts->add( 'jquery-ui-autocomplete', "/wp-includes/js/jquery/ui/autocomplete$suffix.js", array( 'jquery-ui-menu', 'wp-a11y' ), '1.12.1', 1 ); |
|
778 |
$scripts->add( 'jquery-ui-button', "/wp-includes/js/jquery/ui/button$suffix.js", array( 'jquery-ui-core', 'jquery-ui-controlgroup', 'jquery-ui-checkboxradio' ), '1.12.1', 1 ); |
|
779 |
$scripts->add( 'jquery-ui-datepicker', "/wp-includes/js/jquery/ui/datepicker$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
780 |
$scripts->add( 'jquery-ui-dialog', "/wp-includes/js/jquery/ui/dialog$suffix.js", array( 'jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button' ), '1.12.1', 1 ); |
|
781 |
$scripts->add( 'jquery-ui-menu', "/wp-includes/js/jquery/ui/menu$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
782 |
$scripts->add( 'jquery-ui-mouse', "/wp-includes/js/jquery/ui/mouse$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
783 |
$scripts->add( 'jquery-ui-progressbar', "/wp-includes/js/jquery/ui/progressbar$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
784 |
$scripts->add( 'jquery-ui-selectmenu', "/wp-includes/js/jquery/ui/selectmenu$suffix.js", array( 'jquery-ui-menu' ), '1.12.1', 1 ); |
|
785 |
$scripts->add( 'jquery-ui-slider', "/wp-includes/js/jquery/ui/slider$suffix.js", array( 'jquery-ui-mouse' ), '1.12.1', 1 ); |
|
786 |
$scripts->add( 'jquery-ui-spinner', "/wp-includes/js/jquery/ui/spinner$suffix.js", array( 'jquery-ui-button' ), '1.12.1', 1 ); |
|
787 |
$scripts->add( 'jquery-ui-tabs', "/wp-includes/js/jquery/ui/tabs$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
788 |
$scripts->add( 'jquery-ui-tooltip', "/wp-includes/js/jquery/ui/tooltip$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
789 |
||
790 |
// New in 1.12.1 |
|
791 |
$scripts->add( 'jquery-ui-checkboxradio', "/wp-includes/js/jquery/ui/checkboxradio$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
792 |
$scripts->add( 'jquery-ui-controlgroup', "/wp-includes/js/jquery/ui/controlgroup$suffix.js", array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
793 |
||
794 |
// Interactions |
|
795 |
$scripts->add( 'jquery-ui-draggable', "/wp-includes/js/jquery/ui/draggable$suffix.js", array( 'jquery-ui-mouse' ), '1.12.1', 1 ); |
|
796 |
$scripts->add( 'jquery-ui-droppable', "/wp-includes/js/jquery/ui/droppable$suffix.js", array( 'jquery-ui-draggable' ), '1.12.1', 1 ); |
|
797 |
$scripts->add( 'jquery-ui-resizable', "/wp-includes/js/jquery/ui/resizable$suffix.js", array( 'jquery-ui-mouse' ), '1.12.1', 1 ); |
|
798 |
$scripts->add( 'jquery-ui-selectable', "/wp-includes/js/jquery/ui/selectable$suffix.js", array( 'jquery-ui-mouse' ), '1.12.1', 1 ); |
|
799 |
$scripts->add( 'jquery-ui-sortable', "/wp-includes/js/jquery/ui/sortable$suffix.js", array( 'jquery-ui-mouse' ), '1.12.1', 1 ); |
|
800 |
||
801 |
// As of 1.12.1 `jquery-ui-position` and `jquery-ui-widget` are part of `jquery-ui-core`. |
|
802 |
// Listed here for back-compat. |
|
803 |
$scripts->add( 'jquery-ui-position', false, array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
804 |
$scripts->add( 'jquery-ui-widget', false, array( 'jquery-ui-core' ), '1.12.1', 1 ); |
|
0 | 805 |
|
16 | 806 |
// Strings for 'jquery-ui-autocomplete' live region messages. |
9 | 807 |
did_action( 'init' ) && $scripts->localize( |
808 |
'jquery-ui-autocomplete', |
|
809 |
'uiAutocompleteL10n', |
|
810 |
array( |
|
811 |
'noResults' => __( 'No results found.' ), |
|
16 | 812 |
/* translators: Number of results found when using jQuery UI Autocomplete. */ |
9 | 813 |
'oneResult' => __( '1 result found. Use up and down arrow keys to navigate.' ), |
16 | 814 |
/* translators: %d: Number of results found when using jQuery UI Autocomplete. */ |
9 | 815 |
'manyResults' => __( '%d results found. Use up and down arrow keys to navigate.' ), |
816 |
'itemSelected' => __( 'Item selected.' ), |
|
817 |
) |
|
818 |
); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
819 |
|
16 | 820 |
// Deprecated, not used in core, most functionality is included in jQuery 1.3. |
18 | 821 |
$scripts->add( 'jquery-form', "/wp-includes/js/jquery/jquery.form$suffix.js", array( 'jquery' ), '4.3.0', 1 ); |
0 | 822 |
|
16 | 823 |
// jQuery plugins. |
824 |
$scripts->add( 'jquery-color', '/wp-includes/js/jquery/jquery.color.min.js', array( 'jquery' ), '2.1.2', 1 ); |
|
9 | 825 |
$scripts->add( 'schedule', '/wp-includes/js/jquery/jquery.schedule.js', array( 'jquery' ), '20m', 1 ); |
826 |
$scripts->add( 'jquery-query', '/wp-includes/js/jquery/jquery.query.js', array( 'jquery' ), '2.1.7', 1 ); |
|
18 | 827 |
$scripts->add( 'jquery-serialize-object', '/wp-includes/js/jquery/jquery.serialize-object.js', array( 'jquery' ), '0.2-wp', 1 ); |
9 | 828 |
$scripts->add( 'jquery-hotkeys', "/wp-includes/js/jquery/jquery.hotkeys$suffix.js", array( 'jquery' ), '0.0.2m', 1 ); |
829 |
$scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array( 'jquery', 'jquery-hotkeys' ), false, 1 ); |
|
18 | 830 |
$scripts->add( 'jquery-touch-punch', '/wp-includes/js/jquery/jquery.ui.touch-punch.js', array( 'jquery-ui-core', 'jquery-ui-mouse' ), '0.2.2', 1 ); |
5 | 831 |
|
9 | 832 |
// Not used any more, registered for backward compatibility. |
833 |
$scripts->add( 'suggest', "/wp-includes/js/jquery/suggest$suffix.js", array( 'jquery' ), '1.1-20110113', 1 ); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
834 |
|
5 | 835 |
// Masonry v2 depended on jQuery. v3 does not. The older jquery-masonry handle is a shiv. |
836 |
// It sets jQuery as a dependency, as the theme may have been implicitly loading it this way. |
|
16 | 837 |
$scripts->add( 'imagesloaded', '/wp-includes/js/imagesloaded.min.js', array(), '4.1.4', 1 ); |
838 |
$scripts->add( 'masonry', '/wp-includes/js/masonry.min.js', array( 'imagesloaded' ), '4.2.2', 1 ); |
|
18 | 839 |
$scripts->add( 'jquery-masonry', '/wp-includes/js/jquery/jquery.masonry.min.js', array( 'jquery', 'masonry' ), '3.1.2b', 1 ); |
0 | 840 |
|
9 | 841 |
$scripts->add( 'thickbox', '/wp-includes/js/thickbox/thickbox.js', array( 'jquery' ), '3.1-20121105', 1 ); |
842 |
did_action( 'init' ) && $scripts->localize( |
|
843 |
'thickbox', |
|
844 |
'thickboxL10n', |
|
845 |
array( |
|
846 |
'next' => __( 'Next >' ), |
|
847 |
'prev' => __( '< Prev' ), |
|
848 |
'image' => __( 'Image' ), |
|
849 |
'of' => __( 'of' ), |
|
850 |
'close' => __( 'Close' ), |
|
851 |
'noiframes' => __( 'This feature requires inline frames. You have iframes disabled or your browser does not support them.' ), |
|
852 |
'loadingAnimation' => includes_url( 'js/thickbox/loadingAnimation.gif' ), |
|
853 |
) |
|
854 |
); |
|
0 | 855 |
|
9 | 856 |
$scripts->add( 'jcrop', '/wp-includes/js/jcrop/jquery.Jcrop.min.js', array( 'jquery' ), '0.9.12' ); |
0 | 857 |
|
9 | 858 |
$scripts->add( 'swfobject', '/wp-includes/js/swfobject.js', array(), '2.2-20120417' ); |
0 | 859 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
860 |
// Error messages for Plupload. |
0 | 861 |
$uploader_l10n = array( |
9 | 862 |
'queue_limit_exceeded' => __( 'You have attempted to queue too many files.' ), |
16 | 863 |
/* translators: %s: File name. */ |
9 | 864 |
'file_exceeds_size_limit' => __( '%s exceeds the maximum upload size for this site.' ), |
865 |
'zero_byte_file' => __( 'This file is empty. Please try another.' ), |
|
866 |
'invalid_filetype' => __( 'Sorry, this file type is not permitted for security reasons.' ), |
|
867 |
'not_an_image' => __( 'This file is not an image. Please try another.' ), |
|
868 |
'image_memory_exceeded' => __( 'Memory exceeded. Please try another smaller file.' ), |
|
869 |
'image_dimensions_exceeded' => __( 'This is larger than the maximum size. Please try another.' ), |
|
870 |
'default_error' => __( 'An error occurred in the upload. Please try again later.' ), |
|
871 |
'missing_upload_url' => __( 'There was a configuration error. Please contact the server administrator.' ), |
|
872 |
'upload_limit_exceeded' => __( 'You may only upload 1 file.' ), |
|
16 | 873 |
'http_error' => __( 'Unexpected response from the server. The file may have been uploaded successfully. Check in the Media Library or reload the page.' ), |
874 |
'http_error_image' => __( 'Post-processing of the image failed likely because the server is busy or does not have enough resources. Uploading a smaller image may help. Suggested maximum size is 2500 pixels.' ), |
|
9 | 875 |
'upload_failed' => __( 'Upload failed.' ), |
16 | 876 |
/* translators: 1: Opening link tag, 2: Closing link tag. */ |
9 | 877 |
'big_upload_failed' => __( 'Please try uploading this file with the %1$sbrowser uploader%2$s.' ), |
16 | 878 |
/* translators: %s: File name. */ |
9 | 879 |
'big_upload_queued' => __( '%s exceeds the maximum upload size for the multi-file uploader when used in your browser.' ), |
880 |
'io_error' => __( 'IO error.' ), |
|
881 |
'security_error' => __( 'Security error.' ), |
|
882 |
'file_cancelled' => __( 'File canceled.' ), |
|
883 |
'upload_stopped' => __( 'Upload stopped.' ), |
|
884 |
'dismiss' => __( 'Dismiss' ), |
|
885 |
'crunching' => __( 'Crunching…' ), |
|
16 | 886 |
'deleted' => __( 'moved to the Trash.' ), |
887 |
/* translators: %s: File name. */ |
|
9 | 888 |
'error_uploading' => __( '“%s” has failed to upload.' ), |
16 | 889 |
'unsupported_image' => __( 'This image cannot be displayed in a web browser. For best results convert it to JPEG before uploading.' ), |
18 | 890 |
'noneditable_image' => __( 'This image cannot be processed by the web server. Convert it to JPEG or PNG before uploading.' ), |
891 |
'file_url_copied' => __( 'The file URL has been copied to your clipboard' ), |
|
0 | 892 |
); |
893 |
||
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
894 |
$scripts->add( 'moxiejs', "/wp-includes/js/plupload/moxie$suffix.js", array(), '1.3.5' ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
895 |
$scripts->add( 'plupload', "/wp-includes/js/plupload/plupload$suffix.js", array( 'moxiejs' ), '2.1.9' ); |
5 | 896 |
// Back compat handles: |
897 |
foreach ( array( 'all', 'html5', 'flash', 'silverlight', 'html4' ) as $handle ) { |
|
898 |
$scripts->add( "plupload-$handle", false, array( 'plupload' ), '2.1.1' ); |
|
899 |
} |
|
0 | 900 |
|
18 | 901 |
$scripts->add( 'plupload-handlers', "/wp-includes/js/plupload/handlers$suffix.js", array( 'clipboard', 'jquery', 'plupload', 'underscore', 'wp-a11y', 'wp-i18n' ) ); |
0 | 902 |
did_action( 'init' ) && $scripts->localize( 'plupload-handlers', 'pluploadL10n', $uploader_l10n ); |
903 |
||
5 | 904 |
$scripts->add( 'wp-plupload', "/wp-includes/js/plupload/wp-plupload$suffix.js", array( 'plupload', 'jquery', 'json2', 'media-models' ), false, 1 ); |
0 | 905 |
did_action( 'init' ) && $scripts->localize( 'wp-plupload', 'pluploadL10n', $uploader_l10n ); |
906 |
||
16 | 907 |
// Keep 'swfupload' for back-compat. |
9 | 908 |
$scripts->add( 'swfupload', '/wp-includes/js/swfupload/swfupload.js', array(), '2201-20110113' ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
909 |
$scripts->add( 'swfupload-all', false, array( 'swfupload' ), '2201' ); |
9 | 910 |
$scripts->add( 'swfupload-handlers', "/wp-includes/js/swfupload/handlers$suffix.js", array( 'swfupload-all', 'jquery' ), '2201-20110524' ); |
0 | 911 |
did_action( 'init' ) && $scripts->localize( 'swfupload-handlers', 'swfuploadL10n', $uploader_l10n ); |
912 |
||
5 | 913 |
$scripts->add( 'comment-reply', "/wp-includes/js/comment-reply$suffix.js", array(), false, 1 ); |
0 | 914 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
915 |
$scripts->add( 'json2', "/wp-includes/js/json2$suffix.js", array(), '2015-05-03' ); |
5 | 916 |
did_action( 'init' ) && $scripts->add_data( 'json2', 'conditional', 'lt IE 8' ); |
0 | 917 |
|
18 | 918 |
$scripts->add( 'underscore', "/wp-includes/js/underscore$dev_suffix.js", array(), '1.13.1', 1 ); |
16 | 919 |
$scripts->add( 'backbone', "/wp-includes/js/backbone$dev_suffix.js", array( 'underscore', 'jquery' ), '1.4.0', 1 ); |
0 | 920 |
|
9 | 921 |
$scripts->add( 'wp-util', "/wp-includes/js/wp-util$suffix.js", array( 'underscore', 'jquery' ), false, 1 ); |
922 |
did_action( 'init' ) && $scripts->localize( |
|
923 |
'wp-util', |
|
924 |
'_wpUtilSettings', |
|
925 |
array( |
|
926 |
'ajax' => array( |
|
927 |
'url' => admin_url( 'admin-ajax.php', 'relative' ), |
|
928 |
), |
|
929 |
) |
|
930 |
); |
|
0 | 931 |
|
9 | 932 |
$scripts->add( 'wp-backbone', "/wp-includes/js/wp-backbone$suffix.js", array( 'backbone', 'wp-util' ), false, 1 ); |
0 | 933 |
|
934 |
$scripts->add( 'revisions', "/wp-admin/js/revisions$suffix.js", array( 'wp-backbone', 'jquery-ui-slider', 'hoverIntent' ), false, 1 ); |
|
935 |
||
9 | 936 |
$scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array( 'jquery' ), false, 1 ); |
0 | 937 |
|
18 | 938 |
$scripts->add( 'mediaelement', false, array( 'jquery', 'mediaelement-core', 'mediaelement-migrate' ), '4.2.16', 1 ); |
939 |
$scripts->add( 'mediaelement-core', "/wp-includes/js/mediaelement/mediaelement-and-player$suffix.js", array(), '4.2.16', 1 ); |
|
9 | 940 |
$scripts->add( 'mediaelement-migrate', "/wp-includes/js/mediaelement/mediaelement-migrate$suffix.js", array(), false, 1 ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
941 |
|
9 | 942 |
did_action( 'init' ) && $scripts->add_inline_script( |
943 |
'mediaelement-core', |
|
944 |
sprintf( |
|
945 |
'var mejsL10n = %s;', |
|
946 |
wp_json_encode( |
|
947 |
array( |
|
948 |
'language' => strtolower( strtok( determine_locale(), '_-' ) ), |
|
949 |
'strings' => array( |
|
16 | 950 |
'mejs.download-file' => __( 'Download File' ), |
9 | 951 |
'mejs.install-flash' => __( 'You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/' ), |
952 |
'mejs.fullscreen' => __( 'Fullscreen' ), |
|
953 |
'mejs.play' => __( 'Play' ), |
|
954 |
'mejs.pause' => __( 'Pause' ), |
|
955 |
'mejs.time-slider' => __( 'Time Slider' ), |
|
956 |
'mejs.time-help-text' => __( 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.' ), |
|
16 | 957 |
'mejs.live-broadcast' => __( 'Live Broadcast' ), |
9 | 958 |
'mejs.volume-help-text' => __( 'Use Up/Down Arrow keys to increase or decrease volume.' ), |
959 |
'mejs.unmute' => __( 'Unmute' ), |
|
960 |
'mejs.mute' => __( 'Mute' ), |
|
961 |
'mejs.volume-slider' => __( 'Volume Slider' ), |
|
962 |
'mejs.video-player' => __( 'Video Player' ), |
|
963 |
'mejs.audio-player' => __( 'Audio Player' ), |
|
16 | 964 |
'mejs.captions-subtitles' => __( 'Captions/Subtitles' ), |
965 |
'mejs.captions-chapters' => __( 'Chapters' ), |
|
966 |
'mejs.none' => __( 'None' ), |
|
9 | 967 |
'mejs.afrikaans' => __( 'Afrikaans' ), |
968 |
'mejs.albanian' => __( 'Albanian' ), |
|
969 |
'mejs.arabic' => __( 'Arabic' ), |
|
970 |
'mejs.belarusian' => __( 'Belarusian' ), |
|
971 |
'mejs.bulgarian' => __( 'Bulgarian' ), |
|
972 |
'mejs.catalan' => __( 'Catalan' ), |
|
973 |
'mejs.chinese' => __( 'Chinese' ), |
|
974 |
'mejs.chinese-simplified' => __( 'Chinese (Simplified)' ), |
|
975 |
'mejs.chinese-traditional' => __( 'Chinese (Traditional)' ), |
|
976 |
'mejs.croatian' => __( 'Croatian' ), |
|
977 |
'mejs.czech' => __( 'Czech' ), |
|
978 |
'mejs.danish' => __( 'Danish' ), |
|
979 |
'mejs.dutch' => __( 'Dutch' ), |
|
980 |
'mejs.english' => __( 'English' ), |
|
981 |
'mejs.estonian' => __( 'Estonian' ), |
|
982 |
'mejs.filipino' => __( 'Filipino' ), |
|
983 |
'mejs.finnish' => __( 'Finnish' ), |
|
984 |
'mejs.french' => __( 'French' ), |
|
985 |
'mejs.galician' => __( 'Galician' ), |
|
986 |
'mejs.german' => __( 'German' ), |
|
987 |
'mejs.greek' => __( 'Greek' ), |
|
988 |
'mejs.haitian-creole' => __( 'Haitian Creole' ), |
|
989 |
'mejs.hebrew' => __( 'Hebrew' ), |
|
990 |
'mejs.hindi' => __( 'Hindi' ), |
|
991 |
'mejs.hungarian' => __( 'Hungarian' ), |
|
992 |
'mejs.icelandic' => __( 'Icelandic' ), |
|
993 |
'mejs.indonesian' => __( 'Indonesian' ), |
|
994 |
'mejs.irish' => __( 'Irish' ), |
|
995 |
'mejs.italian' => __( 'Italian' ), |
|
996 |
'mejs.japanese' => __( 'Japanese' ), |
|
997 |
'mejs.korean' => __( 'Korean' ), |
|
998 |
'mejs.latvian' => __( 'Latvian' ), |
|
999 |
'mejs.lithuanian' => __( 'Lithuanian' ), |
|
1000 |
'mejs.macedonian' => __( 'Macedonian' ), |
|
1001 |
'mejs.malay' => __( 'Malay' ), |
|
1002 |
'mejs.maltese' => __( 'Maltese' ), |
|
1003 |
'mejs.norwegian' => __( 'Norwegian' ), |
|
1004 |
'mejs.persian' => __( 'Persian' ), |
|
1005 |
'mejs.polish' => __( 'Polish' ), |
|
1006 |
'mejs.portuguese' => __( 'Portuguese' ), |
|
1007 |
'mejs.romanian' => __( 'Romanian' ), |
|
1008 |
'mejs.russian' => __( 'Russian' ), |
|
1009 |
'mejs.serbian' => __( 'Serbian' ), |
|
1010 |
'mejs.slovak' => __( 'Slovak' ), |
|
1011 |
'mejs.slovenian' => __( 'Slovenian' ), |
|
1012 |
'mejs.spanish' => __( 'Spanish' ), |
|
1013 |
'mejs.swahili' => __( 'Swahili' ), |
|
1014 |
'mejs.swedish' => __( 'Swedish' ), |
|
1015 |
'mejs.tagalog' => __( 'Tagalog' ), |
|
1016 |
'mejs.thai' => __( 'Thai' ), |
|
1017 |
'mejs.turkish' => __( 'Turkish' ), |
|
1018 |
'mejs.ukrainian' => __( 'Ukrainian' ), |
|
1019 |
'mejs.vietnamese' => __( 'Vietnamese' ), |
|
1020 |
'mejs.welsh' => __( 'Welsh' ), |
|
1021 |
'mejs.yiddish' => __( 'Yiddish' ), |
|
1022 |
), |
|
1023 |
) |
|
1024 |
) |
|
1025 |
), |
|
1026 |
'before' |
|
1027 |
); |
|
0 | 1028 |
|
18 | 1029 |
$scripts->add( 'mediaelement-vimeo', '/wp-includes/js/mediaelement/renderers/vimeo.min.js', array( 'mediaelement' ), '4.2.16', 1 ); |
9 | 1030 |
$scripts->add( 'wp-mediaelement', "/wp-includes/js/mediaelement/wp-mediaelement$suffix.js", array( 'mediaelement' ), false, 1 ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1031 |
$mejs_settings = array( |
9 | 1032 |
'pluginPath' => includes_url( 'js/mediaelement/', 'relative' ), |
1033 |
'classPrefix' => 'mejs-', |
|
1034 |
'stretching' => 'responsive', |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1035 |
); |
9 | 1036 |
did_action( 'init' ) && $scripts->localize( |
1037 |
'mediaelement', |
|
1038 |
'_wpmejsSettings', |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1039 |
/** |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1040 |
* Filters the MediaElement configuration settings. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1041 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1042 |
* @since 4.4.0 |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1043 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1044 |
* @param array $mejs_settings MediaElement settings array. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1045 |
*/ |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1046 |
apply_filters( 'mejs_settings', $mejs_settings ) |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1047 |
); |
0 | 1048 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1049 |
$scripts->add( 'wp-codemirror', '/wp-includes/js/codemirror/codemirror.min.js', array(), '5.29.1-alpha-ee20357' ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1050 |
$scripts->add( 'csslint', '/wp-includes/js/codemirror/csslint.js', array(), '1.0.5' ); |
9 | 1051 |
$scripts->add( 'esprima', '/wp-includes/js/codemirror/esprima.js', array(), '4.0.0' ); |
1052 |
$scripts->add( 'jshint', '/wp-includes/js/codemirror/fakejshint.js', array( 'esprima' ), '2.9.5' ); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1053 |
$scripts->add( 'jsonlint', '/wp-includes/js/codemirror/jsonlint.js', array(), '1.6.2' ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1054 |
$scripts->add( 'htmlhint', '/wp-includes/js/codemirror/htmlhint.js', array(), '0.9.14-xwp' ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1055 |
$scripts->add( 'htmlhint-kses', '/wp-includes/js/codemirror/htmlhint-kses.js', array( 'htmlhint' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1056 |
$scripts->add( 'code-editor', "/wp-admin/js/code-editor$suffix.js", array( 'jquery', 'wp-codemirror', 'underscore' ) ); |
16 | 1057 |
$scripts->add( 'wp-theme-plugin-editor', "/wp-admin/js/theme-plugin-editor$suffix.js", array( 'common', 'wp-util', 'wp-sanitize', 'jquery', 'jquery-ui-core', 'wp-a11y', 'underscore' ) ); |
1058 |
$scripts->set_translations( 'wp-theme-plugin-editor' ); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1059 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1060 |
$scripts->add( 'wp-playlist', "/wp-includes/js/mediaelement/wp-playlist$suffix.js", array( 'wp-util', 'backbone', 'mediaelement' ), false, 1 ); |
5 | 1061 |
|
0 | 1062 |
$scripts->add( 'zxcvbn-async', "/wp-includes/js/zxcvbn-async$suffix.js", array(), '1.0' ); |
9 | 1063 |
did_action( 'init' ) && $scripts->localize( |
1064 |
'zxcvbn-async', |
|
1065 |
'_zxcvbnSettings', |
|
1066 |
array( |
|
1067 |
'src' => empty( $guessed_url ) ? includes_url( '/js/zxcvbn.min.js' ) : $scripts->base_url . '/wp-includes/js/zxcvbn.min.js', |
|
1068 |
) |
|
1069 |
); |
|
0 | 1070 |
|
1071 |
$scripts->add( 'password-strength-meter', "/wp-admin/js/password-strength-meter$suffix.js", array( 'jquery', 'zxcvbn-async' ), false, 1 ); |
|
9 | 1072 |
did_action( 'init' ) && $scripts->localize( |
1073 |
'password-strength-meter', |
|
1074 |
'pwsL10n', |
|
1075 |
array( |
|
1076 |
'unknown' => _x( 'Password strength unknown', 'password strength' ), |
|
1077 |
'short' => _x( 'Very weak', 'password strength' ), |
|
1078 |
'bad' => _x( 'Weak', 'password strength' ), |
|
1079 |
'good' => _x( 'Medium', 'password strength' ), |
|
1080 |
'strong' => _x( 'Strong', 'password strength' ), |
|
1081 |
'mismatch' => _x( 'Mismatch', 'password mismatch' ), |
|
1082 |
) |
|
1083 |
); |
|
16 | 1084 |
$scripts->set_translations( 'password-strength-meter' ); |
0 | 1085 |
|
18 | 1086 |
$scripts->add( 'application-passwords', "/wp-admin/js/application-passwords$suffix.js", array( 'jquery', 'wp-util', 'wp-api-request', 'wp-date', 'wp-i18n', 'wp-hooks' ), false, 1 ); |
1087 |
$scripts->set_translations( 'application-passwords' ); |
|
1088 |
||
1089 |
$scripts->add( 'auth-app', "/wp-admin/js/auth-app$suffix.js", array( 'jquery', 'wp-api-request', 'wp-i18n', 'wp-hooks' ), false, 1 ); |
|
1090 |
$scripts->set_translations( 'auth-app' ); |
|
1091 |
||
5 | 1092 |
$scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter', 'wp-util' ), false, 1 ); |
16 | 1093 |
$scripts->set_translations( 'user-profile' ); |
18 | 1094 |
$user_id = isset( $_GET['user_id'] ) ? (int) $_GET['user_id'] : 0; |
1095 |
did_action( 'init' ) && $scripts->localize( |
|
1096 |
'user-profile', |
|
1097 |
'userProfileL10n', |
|
1098 |
array( |
|
1099 |
'user_id' => $user_id, |
|
1100 |
'nonce' => ( wp_installing() && ! is_multisite() ) ? '' : wp_create_nonce( 'reset-password-for-' . $user_id ), |
|
1101 |
) |
|
1102 |
); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1103 |
|
5 | 1104 |
$scripts->add( 'language-chooser', "/wp-admin/js/language-chooser$suffix.js", array( 'jquery' ), false, 1 ); |
0 | 1105 |
|
1106 |
$scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 ); |
|
1107 |
||
16 | 1108 |
$scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array( 'hoverintent-js' ), false, 1 ); |
0 | 1109 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1110 |
$scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery', 'wp-a11y' ), false, 1 ); |
9 | 1111 |
did_action( 'init' ) && $scripts->localize( |
1112 |
'wplink', |
|
1113 |
'wpLinkL10n', |
|
1114 |
array( |
|
1115 |
'title' => __( 'Insert/edit link' ), |
|
1116 |
'update' => __( 'Update' ), |
|
1117 |
'save' => __( 'Add Link' ), |
|
1118 |
'noTitle' => __( '(no title)' ), |
|
1119 |
'noMatchesFound' => __( 'No results found.' ), |
|
1120 |
'linkSelected' => __( 'Link selected.' ), |
|
1121 |
'linkInserted' => __( 'Link inserted.' ), |
|
16 | 1122 |
/* translators: Minimum input length in characters to start searching posts in the "Insert/edit link" modal. */ |
1123 |
'minInputLength' => (int) _x( '3', 'minimum input length for searching post links' ), |
|
9 | 1124 |
) |
1125 |
); |
|
0 | 1126 |
|
5 | 1127 |
$scripts->add( 'wpdialogs', "/wp-includes/js/wpdialog$suffix.js", array( 'jquery-ui-dialog' ), false, 1 ); |
0 | 1128 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1129 |
$scripts->add( 'word-count', "/wp-admin/js/word-count$suffix.js", array(), false, 1 ); |
0 | 1130 |
|
1131 |
$scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox', 'shortcode' ), false, 1 ); |
|
1132 |
||
18 | 1133 |
$scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array( 'jquery' ), '1.10.1', 1 ); |
0 | 1134 |
|
16 | 1135 |
// JS-only version of hoverintent (no dependencies). |
1136 |
$scripts->add( 'hoverintent-js', '/wp-includes/js/hoverintent-js.min.js', array(), '2.2.1', 1 ); |
|
1137 |
||
9 | 1138 |
$scripts->add( 'customize-base', "/wp-includes/js/customize-base$suffix.js", array( 'jquery', 'json2', 'underscore' ), false, 1 ); |
1139 |
$scripts->add( 'customize-loader', "/wp-includes/js/customize-loader$suffix.js", array( 'customize-base' ), false, 1 ); |
|
1140 |
$scripts->add( 'customize-preview', "/wp-includes/js/customize-preview$suffix.js", array( 'wp-a11y', 'customize-base' ), false, 1 ); |
|
1141 |
$scripts->add( 'customize-models', '/wp-includes/js/customize-models.js', array( 'underscore', 'backbone' ), false, 1 ); |
|
1142 |
$scripts->add( 'customize-views', '/wp-includes/js/customize-views.js', array( 'jquery', 'underscore', 'imgareaselect', 'customize-models', 'media-editor', 'media-views' ), false, 1 ); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1143 |
$scripts->add( 'customize-controls', "/wp-admin/js/customize-controls$suffix.js", array( 'customize-base', 'wp-a11y', 'wp-util', 'jquery-ui-core' ), false, 1 ); |
9 | 1144 |
did_action( 'init' ) && $scripts->localize( |
1145 |
'customize-controls', |
|
1146 |
'_wpCustomizeControlsL10n', |
|
1147 |
array( |
|
1148 |
'activate' => __( 'Activate & Publish' ), |
|
1149 |
'save' => __( 'Save & Publish' ), // @todo Remove as not required. |
|
1150 |
'publish' => __( 'Publish' ), |
|
1151 |
'published' => __( 'Published' ), |
|
1152 |
'saveDraft' => __( 'Save Draft' ), |
|
1153 |
'draftSaved' => __( 'Draft Saved' ), |
|
1154 |
'updating' => __( 'Updating' ), |
|
1155 |
'schedule' => _x( 'Schedule', 'customizer changeset action/button label' ), |
|
1156 |
'scheduled' => _x( 'Scheduled', 'customizer changeset status' ), |
|
1157 |
'invalid' => __( 'Invalid' ), |
|
1158 |
'saveBeforeShare' => __( 'Please save your changes in order to share the preview.' ), |
|
1159 |
'futureDateError' => __( 'You must supply a future date to schedule.' ), |
|
1160 |
'saveAlert' => __( 'The changes you made will be lost if you navigate away from this page.' ), |
|
1161 |
'saved' => __( 'Saved' ), |
|
1162 |
'cancel' => __( 'Cancel' ), |
|
1163 |
'close' => __( 'Close' ), |
|
1164 |
'action' => __( 'Action' ), |
|
1165 |
'discardChanges' => __( 'Discard changes' ), |
|
1166 |
'cheatin' => __( 'Something went wrong.' ), |
|
1167 |
'notAllowedHeading' => __( 'You need a higher level of permission.' ), |
|
1168 |
'notAllowed' => __( 'Sorry, you are not allowed to customize this site.' ), |
|
1169 |
'previewIframeTitle' => __( 'Site Preview' ), |
|
1170 |
'loginIframeTitle' => __( 'Session expired' ), |
|
1171 |
'collapseSidebar' => _x( 'Hide Controls', 'label for hide controls button without length constraints' ), |
|
1172 |
'expandSidebar' => _x( 'Show Controls', 'label for hide controls button without length constraints' ), |
|
1173 |
'untitledBlogName' => __( '(Untitled)' ), |
|
1174 |
'unknownRequestFail' => __( 'Looks like something’s gone wrong. Wait a couple seconds, and then try again.' ), |
|
1175 |
'themeDownloading' => __( 'Downloading your new theme…' ), |
|
1176 |
'themePreviewWait' => __( 'Setting up your live preview. This may take a bit.' ), |
|
1177 |
'revertingChanges' => __( 'Reverting unpublished changes…' ), |
|
16 | 1178 |
'trashConfirm' => __( 'Are you sure you want to discard your unpublished changes?' ), |
9 | 1179 |
/* translators: %s: Display name of the user who has taken over the changeset in customizer. */ |
1180 |
'takenOverMessage' => __( '%s has taken over and is currently customizing.' ), |
|
16 | 1181 |
/* translators: %s: URL to the Customizer to load the autosaved version. */ |
9 | 1182 |
'autosaveNotice' => __( 'There is a more recent autosave of your changes than the one you are previewing. <a href="%s">Restore the autosave</a>' ), |
1183 |
'videoHeaderNotice' => __( 'This theme doesn’t support video headers on this page. Navigate to the front page or another page that supports video headers.' ), |
|
16 | 1184 |
// Used for overriding the file types allowed in Plupload. |
9 | 1185 |
'allowedFiles' => __( 'Allowed Files' ), |
1186 |
'customCssError' => array( |
|
16 | 1187 |
/* translators: %d: Error count. */ |
9 | 1188 |
'singular' => _n( 'There is %d error which must be fixed before you can save.', 'There are %d errors which must be fixed before you can save.', 1 ), |
16 | 1189 |
/* translators: %d: Error count. */ |
1190 |
'plural' => _n( 'There is %d error which must be fixed before you can save.', 'There are %d errors which must be fixed before you can save.', 2 ), |
|
1191 |
// @todo This is lacking, as some languages have a dedicated dual form. For proper handling of plurals in JS, see #20491. |
|
9 | 1192 |
), |
1193 |
'pageOnFrontError' => __( 'Homepage and posts page must be different.' ), |
|
1194 |
'saveBlockedError' => array( |
|
16 | 1195 |
/* translators: %s: Number of invalid settings. */ |
9 | 1196 |
'singular' => _n( 'Unable to save due to %s invalid setting.', 'Unable to save due to %s invalid settings.', 1 ), |
16 | 1197 |
/* translators: %s: Number of invalid settings. */ |
1198 |
'plural' => _n( 'Unable to save due to %s invalid setting.', 'Unable to save due to %s invalid settings.', 2 ), |
|
1199 |
// @todo This is lacking, as some languages have a dedicated dual form. For proper handling of plurals in JS, see #20491. |
|
9 | 1200 |
), |
1201 |
'scheduleDescription' => __( 'Schedule your customization changes to publish ("go live") at a future date.' ), |
|
1202 |
'themePreviewUnavailable' => __( 'Sorry, you can’t preview new themes when you have changes scheduled or saved as a draft. Please publish your changes, or wait until they publish to preview new themes.' ), |
|
1203 |
'themeInstallUnavailable' => sprintf( |
|
16 | 1204 |
/* translators: %s: URL to Add Themes admin screen. */ |
1205 |
__( 'You won’t be able to install new themes from here yet since your install requires SFTP credentials. For now, please <a href="%s">add themes in the admin</a>.' ), |
|
9 | 1206 |
esc_url( admin_url( 'theme-install.php' ) ) |
1207 |
), |
|
1208 |
'publishSettings' => __( 'Publish Settings' ), |
|
1209 |
'invalidDate' => __( 'Invalid date.' ), |
|
1210 |
'invalidValue' => __( 'Invalid value.' ), |
|
1211 |
) |
|
1212 |
); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1213 |
$scripts->add( 'customize-selective-refresh', "/wp-includes/js/customize-selective-refresh$suffix.js", array( 'jquery', 'wp-util', 'customize-preview' ), false, 1 ); |
0 | 1214 |
|
5 | 1215 |
$scripts->add( 'customize-widgets', "/wp-admin/js/customize-widgets$suffix.js", array( 'jquery', 'jquery-ui-sortable', 'jquery-ui-droppable', 'wp-backbone', 'customize-controls' ), false, 1 ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1216 |
$scripts->add( 'customize-preview-widgets', "/wp-includes/js/customize-preview-widgets$suffix.js", array( 'jquery', 'wp-util', 'customize-preview', 'customize-selective-refresh' ), false, 1 ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1217 |
|
9 | 1218 |
$scripts->add( 'customize-nav-menus', "/wp-admin/js/customize-nav-menus$suffix.js", array( 'jquery', 'wp-backbone', 'customize-controls', 'accordion', 'nav-menu', 'wp-sanitize' ), false, 1 ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1219 |
$scripts->add( 'customize-preview-nav-menus', "/wp-includes/js/customize-preview-nav-menus$suffix.js", array( 'jquery', 'wp-util', 'customize-preview', 'customize-selective-refresh' ), false, 1 ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1220 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1221 |
$scripts->add( 'wp-custom-header', "/wp-includes/js/wp-custom-header$suffix.js", array( 'wp-a11y' ), false, 1 ); |
5 | 1222 |
|
0 | 1223 |
$scripts->add( 'accordion', "/wp-admin/js/accordion$suffix.js", array( 'jquery' ), false, 1 ); |
1224 |
||
1225 |
$scripts->add( 'shortcode', "/wp-includes/js/shortcode$suffix.js", array( 'underscore' ), false, 1 ); |
|
1226 |
$scripts->add( 'media-models', "/wp-includes/js/media-models$suffix.js", array( 'wp-backbone' ), false, 1 ); |
|
9 | 1227 |
did_action( 'init' ) && $scripts->localize( |
1228 |
'media-models', |
|
1229 |
'_wpMediaModelsL10n', |
|
1230 |
array( |
|
1231 |
'settings' => array( |
|
1232 |
'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ), |
|
1233 |
'post' => array( 'id' => 0 ), |
|
1234 |
), |
|
1235 |
) |
|
1236 |
); |
|
0 | 1237 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1238 |
$scripts->add( 'wp-embed', "/wp-includes/js/wp-embed$suffix.js" ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1239 |
|
0 | 1240 |
// To enqueue media-views or media-editor, call wp_enqueue_media(). |
1241 |
// Both rely on numerous settings, styles, and templates to operate correctly. |
|
16 | 1242 |
$scripts->add( 'media-views', "/wp-includes/js/media-views$suffix.js", array( 'utils', 'media-models', 'wp-plupload', 'jquery-ui-sortable', 'wp-mediaelement', 'wp-api-request', 'wp-a11y', 'clipboard' ), false, 1 ); |
1243 |
$scripts->set_translations( 'media-views' ); |
|
1244 |
||
0 | 1245 |
$scripts->add( 'media-editor', "/wp-includes/js/media-editor$suffix.js", array( 'shortcode', 'media-views' ), false, 1 ); |
16 | 1246 |
$scripts->set_translations( 'media-editor' ); |
5 | 1247 |
$scripts->add( 'media-audiovideo', "/wp-includes/js/media-audiovideo$suffix.js", array( 'media-editor' ), false, 1 ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1248 |
$scripts->add( 'mce-view', "/wp-includes/js/mce-view$suffix.js", array( 'shortcode', 'jquery', 'media-views', 'media-audiovideo' ), false, 1 ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1249 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1250 |
$scripts->add( 'wp-api', "/wp-includes/js/wp-api$suffix.js", array( 'jquery', 'backbone', 'underscore', 'wp-api-request' ), false, 1 ); |
0 | 1251 |
|
1252 |
if ( is_admin() ) { |
|
5 | 1253 |
$scripts->add( 'admin-tags', "/wp-admin/js/tags$suffix.js", array( 'jquery', 'wp-ajax-response' ), false, 1 ); |
16 | 1254 |
$scripts->set_translations( 'admin-tags' ); |
0 | 1255 |
|
9 | 1256 |
$scripts->add( 'admin-comments', "/wp-admin/js/edit-comments$suffix.js", array( 'wp-lists', 'quicktags', 'jquery-query' ), false, 1 ); |
16 | 1257 |
$scripts->set_translations( 'admin-comments' ); |
9 | 1258 |
did_action( 'init' ) && $scripts->localize( |
1259 |
'admin-comments', |
|
16 | 1260 |
'adminCommentsSettings', |
9 | 1261 |
array( |
1262 |
'hotkeys_highlight_first' => isset( $_GET['hotkeys_highlight_first'] ), |
|
1263 |
'hotkeys_highlight_last' => isset( $_GET['hotkeys_highlight_last'] ), |
|
1264 |
) |
|
1265 |
); |
|
0 | 1266 |
|
9 | 1267 |
$scripts->add( 'xfn', "/wp-admin/js/xfn$suffix.js", array( 'jquery' ), false, 1 ); |
0 | 1268 |
|
16 | 1269 |
$scripts->add( 'postbox', "/wp-admin/js/postbox$suffix.js", array( 'jquery-ui-sortable', 'wp-a11y' ), false, 1 ); |
1270 |
$scripts->set_translations( 'postbox' ); |
|
5 | 1271 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1272 |
$scripts->add( 'tags-box', "/wp-admin/js/tags-box$suffix.js", array( 'jquery', 'tags-suggest' ), false, 1 ); |
16 | 1273 |
$scripts->set_translations( 'tags-box' ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1274 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1275 |
$scripts->add( 'tags-suggest', "/wp-admin/js/tags-suggest$suffix.js", array( 'jquery-ui-autocomplete', 'wp-a11y' ), false, 1 ); |
16 | 1276 |
$scripts->set_translations( 'tags-suggest' ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1277 |
|
16 | 1278 |
$scripts->add( 'post', "/wp-admin/js/post$suffix.js", array( 'suggest', 'wp-lists', 'postbox', 'tags-box', 'underscore', 'word-count', 'wp-a11y', 'wp-sanitize', 'clipboard' ), false, 1 ); |
1279 |
$scripts->set_translations( 'post' ); |
|
0 | 1280 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1281 |
$scripts->add( 'editor-expand', "/wp-admin/js/editor-expand$suffix.js", array( 'jquery', 'underscore' ), false, 1 ); |
5 | 1282 |
|
0 | 1283 |
$scripts->add( 'link', "/wp-admin/js/link$suffix.js", array( 'wp-lists', 'postbox' ), false, 1 ); |
1284 |
||
16 | 1285 |
$scripts->add( 'comment', "/wp-admin/js/comment$suffix.js", array( 'jquery', 'postbox' ), false, 1 ); |
1286 |
$scripts->set_translations( 'comment' ); |
|
0 | 1287 |
|
1288 |
$scripts->add( 'admin-gallery', "/wp-admin/js/gallery$suffix.js", array( 'jquery-ui-sortable' ) ); |
|
1289 |
||
16 | 1290 |
$scripts->add( 'admin-widgets', "/wp-admin/js/widgets$suffix.js", array( 'jquery-ui-sortable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'wp-a11y' ), false, 1 ); |
1291 |
$scripts->set_translations( 'admin-widgets' ); |
|
0 | 1292 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1293 |
$scripts->add( 'media-widgets', "/wp-admin/js/widgets/media-widgets$suffix.js", array( 'jquery', 'media-models', 'media-views', 'wp-api-request' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1294 |
$scripts->add_inline_script( 'media-widgets', 'wp.mediaWidgets.init();', 'after' ); |
0 | 1295 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1296 |
$scripts->add( 'media-audio-widget', "/wp-admin/js/widgets/media-audio-widget$suffix.js", array( 'media-widgets', 'media-audiovideo' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1297 |
$scripts->add( 'media-image-widget', "/wp-admin/js/widgets/media-image-widget$suffix.js", array( 'media-widgets' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1298 |
$scripts->add( 'media-gallery-widget', "/wp-admin/js/widgets/media-gallery-widget$suffix.js", array( 'media-widgets' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1299 |
$scripts->add( 'media-video-widget', "/wp-admin/js/widgets/media-video-widget$suffix.js", array( 'media-widgets', 'media-audiovideo', 'wp-api-request' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1300 |
$scripts->add( 'text-widgets', "/wp-admin/js/widgets/text-widgets$suffix.js", array( 'jquery', 'backbone', 'editor', 'wp-util', 'wp-a11y' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1301 |
$scripts->add( 'custom-html-widgets', "/wp-admin/js/widgets/custom-html-widgets$suffix.js", array( 'jquery', 'backbone', 'wp-util', 'jquery-ui-core', 'wp-a11y' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1302 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1303 |
$scripts->add( 'theme', "/wp-admin/js/theme$suffix.js", array( 'wp-backbone', 'wp-a11y', 'customize-base' ), false, 1 ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1304 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1305 |
$scripts->add( 'inline-edit-post', "/wp-admin/js/inline-edit-post$suffix.js", array( 'jquery', 'tags-suggest', 'wp-a11y' ), false, 1 ); |
16 | 1306 |
$scripts->set_translations( 'inline-edit-post' ); |
0 | 1307 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1308 |
$scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery', 'wp-a11y' ), false, 1 ); |
16 | 1309 |
$scripts->set_translations( 'inline-edit-tax' ); |
0 | 1310 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1311 |
$scripts->add( 'plugin-install', "/wp-admin/js/plugin-install$suffix.js", array( 'jquery', 'jquery-ui-core', 'thickbox' ), false, 1 ); |
16 | 1312 |
$scripts->set_translations( 'plugin-install' ); |
9 | 1313 |
|
18 | 1314 |
$scripts->add( 'site-health', "/wp-admin/js/site-health$suffix.js", array( 'clipboard', 'jquery', 'wp-util', 'wp-a11y', 'wp-api-request', 'wp-url', 'wp-i18n', 'wp-hooks' ), false, 1 ); |
9 | 1315 |
$scripts->set_translations( 'site-health' ); |
0 | 1316 |
|
16 | 1317 |
$scripts->add( 'privacy-tools', "/wp-admin/js/privacy-tools$suffix.js", array( 'jquery', 'wp-a11y' ), false, 1 ); |
1318 |
$scripts->set_translations( 'privacy-tools' ); |
|
1319 |
||
1320 |
$scripts->add( 'updates', "/wp-admin/js/updates$suffix.js", array( 'common', 'jquery', 'wp-util', 'wp-a11y', 'wp-sanitize' ), false, 1 ); |
|
1321 |
$scripts->set_translations( 'updates' ); |
|
9 | 1322 |
did_action( 'init' ) && $scripts->localize( |
1323 |
'updates', |
|
1324 |
'_wpUpdatesSettings', |
|
1325 |
array( |
|
1326 |
'ajax_nonce' => wp_create_nonce( 'updates' ), |
|
1327 |
) |
|
1328 |
); |
|
5 | 1329 |
|
9 | 1330 |
$scripts->add( 'farbtastic', '/wp-admin/js/farbtastic.js', array( 'jquery' ), '1.2' ); |
0 | 1331 |
|
5 | 1332 |
$scripts->add( 'iris', '/wp-admin/js/iris.min.js', array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), '1.0.7', 1 ); |
0 | 1333 |
$scripts->add( 'wp-color-picker', "/wp-admin/js/color-picker$suffix.js", array( 'iris' ), false, 1 ); |
16 | 1334 |
$scripts->set_translations( 'wp-color-picker' ); |
0 | 1335 |
|
18 | 1336 |
$scripts->add( 'dashboard', "/wp-admin/js/dashboard$suffix.js", array( 'jquery', 'admin-comments', 'postbox', 'wp-util', 'wp-a11y', 'wp-date' ), false, 1 ); |
1337 |
$scripts->set_translations( 'dashboard' ); |
|
0 | 1338 |
|
1339 |
$scripts->add( 'list-revisions', "/wp-includes/js/wp-list-revisions$suffix.js" ); |
|
1340 |
||
5 | 1341 |
$scripts->add( 'media-grid', "/wp-includes/js/media-grid$suffix.js", array( 'media-editor' ), false, 1 ); |
1342 |
$scripts->add( 'media', "/wp-admin/js/media$suffix.js", array( 'jquery' ), false, 1 ); |
|
16 | 1343 |
$scripts->set_translations( 'media' ); |
0 | 1344 |
|
16 | 1345 |
$scripts->add( 'image-edit', "/wp-admin/js/image-edit$suffix.js", array( 'jquery', 'jquery-ui-core', 'json2', 'imgareaselect', 'wp-a11y' ), false, 1 ); |
1346 |
$scripts->set_translations( 'image-edit' ); |
|
0 | 1347 |
|
1348 |
$scripts->add( 'set-post-thumbnail', "/wp-admin/js/set-post-thumbnail$suffix.js", array( 'jquery' ), false, 1 ); |
|
16 | 1349 |
$scripts->set_translations( 'set-post-thumbnail' ); |
0 | 1350 |
|
9 | 1351 |
/* |
1352 |
* Navigation Menus: Adding underscore as a dependency to utilize _.debounce |
|
1353 |
* see https://core.trac.wordpress.org/ticket/42321 |
|
1354 |
*/ |
|
1355 |
$scripts->add( 'nav-menu', "/wp-admin/js/nav-menu$suffix.js", array( 'jquery-ui-sortable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'wp-lists', 'postbox', 'json2', 'underscore' ) ); |
|
16 | 1356 |
$scripts->set_translations( 'nav-menu' ); |
0 | 1357 |
|
9 | 1358 |
$scripts->add( 'custom-header', '/wp-admin/js/custom-header.js', array( 'jquery-masonry' ), false, 1 ); |
0 | 1359 |
$scripts->add( 'custom-background', "/wp-admin/js/custom-background$suffix.js", array( 'wp-color-picker', 'media-views' ), false, 1 ); |
9 | 1360 |
$scripts->add( 'media-gallery', "/wp-admin/js/media-gallery$suffix.js", array( 'jquery' ), false, 1 ); |
5 | 1361 |
|
1362 |
$scripts->add( 'svg-painter', '/wp-admin/js/svg-painter.js', array( 'jquery' ), false, 1 ); |
|
0 | 1363 |
} |
1364 |
} |
|
1365 |
||
1366 |
/** |
|
1367 |
* Assign default styles to $styles object. |
|
1368 |
* |
|
1369 |
* Nothing is returned, because the $styles parameter is passed by reference. |
|
1370 |
* Meaning that whatever object is passed will be updated without having to |
|
1371 |
* reassign the variable that was passed back to the same value. This saves |
|
1372 |
* memory. |
|
1373 |
* |
|
1374 |
* Adding default styles is not the only task, it also assigns the base_url |
|
1375 |
* property, the default version, and text direction for the object. |
|
1376 |
* |
|
1377 |
* @since 2.6.0 |
|
1378 |
* |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1379 |
* @param WP_Styles $styles |
0 | 1380 |
*/ |
16 | 1381 |
function wp_default_styles( $styles ) { |
1382 |
// Include an unmodified $wp_version. |
|
1383 |
require ABSPATH . WPINC . '/version.php'; |
|
0 | 1384 |
|
9 | 1385 |
if ( ! defined( 'SCRIPT_DEBUG' ) ) { |
0 | 1386 |
define( 'SCRIPT_DEBUG', false !== strpos( $wp_version, '-src' ) ); |
9 | 1387 |
} |
0 | 1388 |
|
16 | 1389 |
$guessurl = site_url(); |
1390 |
||
1391 |
if ( ! $guessurl ) { |
|
9 | 1392 |
$guessurl = wp_guess_url(); |
1393 |
} |
|
1394 |
||
1395 |
$styles->base_url = $guessurl; |
|
1396 |
$styles->content_url = defined( 'WP_CONTENT_URL' ) ? WP_CONTENT_URL : ''; |
|
0 | 1397 |
$styles->default_version = get_bloginfo( 'version' ); |
9 | 1398 |
$styles->text_direction = function_exists( 'is_rtl' ) && is_rtl() ? 'rtl' : 'ltr'; |
1399 |
$styles->default_dirs = array( '/wp-admin/', '/wp-includes/css/' ); |
|
0 | 1400 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1401 |
// Open Sans is no longer used by core, but may be relied upon by themes and plugins. |
5 | 1402 |
$open_sans_font_url = ''; |
1403 |
||
16 | 1404 |
/* |
1405 |
* translators: If there are characters in your language that are not supported |
|
5 | 1406 |
* by Open Sans, translate this to 'off'. Do not translate into your own language. |
1407 |
*/ |
|
1408 |
if ( 'off' !== _x( 'on', 'Open Sans font: on or off' ) ) { |
|
1409 |
$subsets = 'latin,latin-ext'; |
|
1410 |
||
16 | 1411 |
/* |
1412 |
* translators: To add an additional Open Sans character subset specific to your language, |
|
5 | 1413 |
* translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language. |
1414 |
*/ |
|
1415 |
$subset = _x( 'no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)' ); |
|
1416 |
||
16 | 1417 |
if ( 'cyrillic' === $subset ) { |
5 | 1418 |
$subsets .= ',cyrillic,cyrillic-ext'; |
16 | 1419 |
} elseif ( 'greek' === $subset ) { |
5 | 1420 |
$subsets .= ',greek,greek-ext'; |
16 | 1421 |
} elseif ( 'vietnamese' === $subset ) { |
5 | 1422 |
$subsets .= ',vietnamese'; |
1423 |
} |
|
1424 |
||
16 | 1425 |
// Hotlink Open Sans, for now. |
1426 |
$open_sans_font_url = "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets&display=fallback"; |
|
5 | 1427 |
} |
1428 |
||
1429 |
// Register a stylesheet for the selected admin color scheme. |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1430 |
$styles->add( 'colors', true, array( 'wp-admin', 'buttons' ) ); |
5 | 1431 |
|
0 | 1432 |
$suffix = SCRIPT_DEBUG ? '' : '.min'; |
1433 |
||
16 | 1434 |
// Admin CSS. |
9 | 1435 |
$styles->add( 'common', "/wp-admin/css/common$suffix.css" ); |
1436 |
$styles->add( 'forms', "/wp-admin/css/forms$suffix.css" ); |
|
1437 |
$styles->add( 'admin-menu', "/wp-admin/css/admin-menu$suffix.css" ); |
|
1438 |
$styles->add( 'dashboard', "/wp-admin/css/dashboard$suffix.css" ); |
|
1439 |
$styles->add( 'list-tables', "/wp-admin/css/list-tables$suffix.css" ); |
|
1440 |
$styles->add( 'edit', "/wp-admin/css/edit$suffix.css" ); |
|
1441 |
$styles->add( 'revisions', "/wp-admin/css/revisions$suffix.css" ); |
|
1442 |
$styles->add( 'media', "/wp-admin/css/media$suffix.css" ); |
|
1443 |
$styles->add( 'themes', "/wp-admin/css/themes$suffix.css" ); |
|
1444 |
$styles->add( 'about', "/wp-admin/css/about$suffix.css" ); |
|
1445 |
$styles->add( 'nav-menus', "/wp-admin/css/nav-menus$suffix.css" ); |
|
1446 |
$styles->add( 'widgets', "/wp-admin/css/widgets$suffix.css", array( 'wp-pointer' ) ); |
|
1447 |
$styles->add( 'site-icon', "/wp-admin/css/site-icon$suffix.css" ); |
|
1448 |
$styles->add( 'l10n', "/wp-admin/css/l10n$suffix.css" ); |
|
1449 |
$styles->add( 'code-editor', "/wp-admin/css/code-editor$suffix.css", array( 'wp-codemirror' ) ); |
|
1450 |
$styles->add( 'site-health', "/wp-admin/css/site-health$suffix.css" ); |
|
0 | 1451 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1452 |
$styles->add( 'wp-admin', false, array( 'dashicons', 'common', 'forms', 'admin-menu', 'dashboard', 'list-tables', 'edit', 'revisions', 'media', 'themes', 'about', 'nav-menus', 'widgets', 'site-icon', 'l10n' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1453 |
|
9 | 1454 |
$styles->add( 'login', "/wp-admin/css/login$suffix.css", array( 'dashicons', 'buttons', 'forms', 'l10n' ) ); |
1455 |
$styles->add( 'install', "/wp-admin/css/install$suffix.css", array( 'dashicons', 'buttons', 'forms', 'l10n' ) ); |
|
1456 |
$styles->add( 'wp-color-picker', "/wp-admin/css/color-picker$suffix.css" ); |
|
16 | 1457 |
$styles->add( 'customize-controls', "/wp-admin/css/customize-controls$suffix.css", array( 'wp-admin', 'colors', 'imgareaselect' ) ); |
9 | 1458 |
$styles->add( 'customize-widgets', "/wp-admin/css/customize-widgets$suffix.css", array( 'wp-admin', 'colors' ) ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1459 |
$styles->add( 'customize-nav-menus', "/wp-admin/css/customize-nav-menus$suffix.css", array( 'wp-admin', 'colors' ) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1460 |
|
16 | 1461 |
// Common dependencies. |
9 | 1462 |
$styles->add( 'buttons', "/wp-includes/css/buttons$suffix.css" ); |
5 | 1463 |
$styles->add( 'dashicons', "/wp-includes/css/dashicons$suffix.css" ); |
0 | 1464 |
|
16 | 1465 |
// Includes CSS. |
9 | 1466 |
$styles->add( 'admin-bar', "/wp-includes/css/admin-bar$suffix.css", array( 'dashicons' ) ); |
1467 |
$styles->add( 'wp-auth-check', "/wp-includes/css/wp-auth-check$suffix.css", array( 'dashicons' ) ); |
|
1468 |
$styles->add( 'editor-buttons', "/wp-includes/css/editor$suffix.css", array( 'dashicons' ) ); |
|
1469 |
$styles->add( 'media-views', "/wp-includes/css/media-views$suffix.css", array( 'buttons', 'dashicons', 'wp-mediaelement' ) ); |
|
1470 |
$styles->add( 'wp-pointer', "/wp-includes/css/wp-pointer$suffix.css", array( 'dashicons' ) ); |
|
1471 |
$styles->add( 'customize-preview', "/wp-includes/css/customize-preview$suffix.css", array( 'dashicons' ) ); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1472 |
$styles->add( 'wp-embed-template-ie', "/wp-includes/css/wp-embed-template-ie$suffix.css" ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1473 |
$styles->add_data( 'wp-embed-template-ie', 'conditional', 'lte IE 8' ); |
0 | 1474 |
|
16 | 1475 |
// External libraries and friends. |
9 | 1476 |
$styles->add( 'imgareaselect', '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.8' ); |
5 | 1477 |
$styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$suffix.css", array( 'dashicons' ) ); |
18 | 1478 |
$styles->add( 'mediaelement', '/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css', array(), '4.2.16' ); |
9 | 1479 |
$styles->add( 'wp-mediaelement', "/wp-includes/js/mediaelement/wp-mediaelement$suffix.css", array( 'mediaelement' ) ); |
1480 |
$styles->add( 'thickbox', '/wp-includes/js/thickbox/thickbox.css', array( 'dashicons' ) ); |
|
1481 |
$styles->add( 'wp-codemirror', '/wp-includes/js/codemirror/codemirror.min.css', array(), '5.29.1-alpha-ee20357' ); |
|
5 | 1482 |
|
16 | 1483 |
// Deprecated CSS. |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1484 |
$styles->add( 'deprecated-media', "/wp-admin/css/deprecated-media$suffix.css" ); |
9 | 1485 |
$styles->add( 'farbtastic', "/wp-admin/css/farbtastic$suffix.css", array(), '1.3u1' ); |
1486 |
$styles->add( 'jcrop', '/wp-includes/js/jcrop/jquery.Jcrop.min.css', array(), '0.9.12' ); |
|
5 | 1487 |
$styles->add( 'colors-fresh', false, array( 'wp-admin', 'buttons' ) ); // Old handle. |
16 | 1488 |
$styles->add( 'open-sans', $open_sans_font_url ); // No longer used in core as of 4.6. |
0 | 1489 |
|
18 | 1490 |
// Noto Serif is no longer used by core, but may be relied upon by themes and plugins. |
9 | 1491 |
$fonts_url = ''; |
1492 |
||
1493 |
/* |
|
16 | 1494 |
* translators: Use this to specify the proper Google Font name and variants |
9 | 1495 |
* to load that is supported by your language. Do not translate. |
1496 |
* Set to 'off' to disable loading. |
|
1497 |
*/ |
|
1498 |
$font_family = _x( 'Noto Serif:400,400i,700,700i', 'Google Font Name and Variants' ); |
|
1499 |
if ( 'off' !== $font_family ) { |
|
1500 |
$fonts_url = 'https://fonts.googleapis.com/css?family=' . urlencode( $font_family ); |
|
1501 |
} |
|
18 | 1502 |
$styles->add( 'wp-editor-font', $fonts_url ); // No longer used in core as of 5.7. |
1503 |
$block_library_theme_path = WPINC . "/css/dist/block-library/theme$suffix.css"; |
|
1504 |
$styles->add( 'wp-block-library-theme', "/$block_library_theme_path" ); |
|
1505 |
$styles->add_data( 'wp-block-library-theme', 'path', ABSPATH . $block_library_theme_path ); |
|
1506 |
||
1507 |
$styles->add( |
|
1508 |
'wp-reset-editor-styles', |
|
1509 |
"/wp-includes/css/dist/block-library/reset$suffix.css", |
|
1510 |
array( 'common', 'forms' ) // Make sure the reset is loaded after the default WP Admin styles. |
|
1511 |
); |
|
1512 |
||
1513 |
$styles->add( |
|
1514 |
'wp-editor-classic-layout-styles', |
|
1515 |
"/wp-includes/css/dist/edit-post/classic$suffix.css", |
|
1516 |
array() |
|
1517 |
); |
|
1518 |
||
1519 |
$wp_edit_blocks_dependencies = array( |
|
1520 |
'wp-components', |
|
1521 |
'wp-editor', |
|
1522 |
// This need to be added before the block library styles, |
|
1523 |
// The block library styles override the "reset" styles. |
|
1524 |
'wp-reset-editor-styles', |
|
1525 |
'wp-block-library', |
|
1526 |
'wp-reusable-blocks', |
|
1527 |
); |
|
1528 |
||
1529 |
// Only load the default layout and margin styles for themes without theme.json file. |
|
1530 |
if ( ! WP_Theme_JSON_Resolver::theme_has_support() ) { |
|
1531 |
$wp_edit_blocks_dependencies[] = 'wp-editor-classic-layout-styles'; |
|
1532 |
} |
|
1533 |
||
1534 |
global $editor_styles; |
|
1535 |
if ( ! is_array( $editor_styles ) || count( $editor_styles ) === 0 ) { |
|
1536 |
// Include opinionated block styles if no $editor_styles are declared, so the editor never appears broken. |
|
1537 |
$wp_edit_blocks_dependencies[] = 'wp-block-library-theme'; |
|
1538 |
} |
|
9 | 1539 |
|
1540 |
$styles->add( |
|
1541 |
'wp-edit-blocks', |
|
1542 |
"/wp-includes/css/dist/block-library/editor$suffix.css", |
|
18 | 1543 |
$wp_edit_blocks_dependencies |
9 | 1544 |
); |
1545 |
||
1546 |
$package_styles = array( |
|
18 | 1547 |
'block-editor' => array( 'wp-components' ), |
9 | 1548 |
'block-library' => array(), |
16 | 1549 |
'block-directory' => array(), |
9 | 1550 |
'components' => array(), |
1551 |
'edit-post' => array( |
|
1552 |
'wp-components', |
|
1553 |
'wp-block-editor', |
|
1554 |
'wp-editor', |
|
1555 |
'wp-edit-blocks', |
|
1556 |
'wp-block-library', |
|
1557 |
'wp-nux', |
|
1558 |
), |
|
1559 |
'editor' => array( |
|
1560 |
'wp-components', |
|
1561 |
'wp-block-editor', |
|
1562 |
'wp-nux', |
|
18 | 1563 |
'wp-reusable-blocks', |
9 | 1564 |
), |
1565 |
'format-library' => array(), |
|
1566 |
'list-reusable-blocks' => array( 'wp-components' ), |
|
18 | 1567 |
'reusable-blocks' => array( 'wp-components' ), |
9 | 1568 |
'nux' => array( 'wp-components' ), |
18 | 1569 |
'widgets' => array( |
1570 |
'wp-components', |
|
1571 |
), |
|
1572 |
'edit-widgets' => array( |
|
1573 |
'wp-widgets', |
|
1574 |
'wp-block-editor', |
|
1575 |
'wp-edit-blocks', |
|
1576 |
'wp-block-library', |
|
1577 |
'wp-reusable-blocks', |
|
1578 |
), |
|
1579 |
'customize-widgets' => array( |
|
1580 |
'wp-widgets', |
|
1581 |
'wp-block-editor', |
|
1582 |
'wp-edit-blocks', |
|
1583 |
'wp-block-library', |
|
1584 |
'wp-reusable-blocks', |
|
1585 |
), |
|
9 | 1586 |
); |
1587 |
||
1588 |
foreach ( $package_styles as $package => $dependencies ) { |
|
1589 |
$handle = 'wp-' . $package; |
|
1590 |
$path = "/wp-includes/css/dist/$package/style$suffix.css"; |
|
1591 |
||
18 | 1592 |
if ( 'block-library' === $package && wp_should_load_separate_core_block_assets() ) { |
1593 |
$path = "/wp-includes/css/dist/$package/common$suffix.css"; |
|
1594 |
} |
|
9 | 1595 |
$styles->add( $handle, $path, $dependencies ); |
18 | 1596 |
$styles->add_data( $handle, 'path', ABSPATH . $path ); |
9 | 1597 |
} |
1598 |
||
16 | 1599 |
// RTL CSS. |
5 | 1600 |
$rtl_styles = array( |
16 | 1601 |
// Admin CSS. |
9 | 1602 |
'common', |
1603 |
'forms', |
|
1604 |
'admin-menu', |
|
1605 |
'dashboard', |
|
1606 |
'list-tables', |
|
1607 |
'edit', |
|
1608 |
'revisions', |
|
1609 |
'media', |
|
1610 |
'themes', |
|
1611 |
'about', |
|
1612 |
'nav-menus', |
|
1613 |
'widgets', |
|
1614 |
'site-icon', |
|
1615 |
'l10n', |
|
1616 |
'install', |
|
1617 |
'wp-color-picker', |
|
1618 |
'customize-controls', |
|
1619 |
'customize-widgets', |
|
1620 |
'customize-nav-menus', |
|
1621 |
'customize-preview', |
|
1622 |
'login', |
|
1623 |
'site-health', |
|
16 | 1624 |
// Includes CSS. |
9 | 1625 |
'buttons', |
1626 |
'admin-bar', |
|
1627 |
'wp-auth-check', |
|
1628 |
'editor-buttons', |
|
1629 |
'media-views', |
|
1630 |
'wp-pointer', |
|
5 | 1631 |
'wp-jquery-ui-dialog', |
16 | 1632 |
// Package styles. |
18 | 1633 |
'wp-reset-editor-styles', |
1634 |
'wp-editor-classic-layout-styles', |
|
9 | 1635 |
'wp-block-library-theme', |
1636 |
'wp-edit-blocks', |
|
1637 |
'wp-block-editor', |
|
1638 |
'wp-block-library', |
|
16 | 1639 |
'wp-block-directory', |
9 | 1640 |
'wp-components', |
18 | 1641 |
'wp-customize-widgets', |
9 | 1642 |
'wp-edit-post', |
18 | 1643 |
'wp-edit-widgets', |
9 | 1644 |
'wp-editor', |
1645 |
'wp-format-library', |
|
1646 |
'wp-list-reusable-blocks', |
|
18 | 1647 |
'wp-reusable-blocks', |
9 | 1648 |
'wp-nux', |
18 | 1649 |
'wp-widgets', |
16 | 1650 |
// Deprecated CSS. |
9 | 1651 |
'deprecated-media', |
1652 |
'farbtastic', |
|
5 | 1653 |
); |
0 | 1654 |
|
1655 |
foreach ( $rtl_styles as $rtl_style ) { |
|
5 | 1656 |
$styles->add_data( $rtl_style, 'rtl', 'replace' ); |
1657 |
if ( $suffix ) { |
|
0 | 1658 |
$styles->add_data( $rtl_style, 'suffix', $suffix ); |
5 | 1659 |
} |
0 | 1660 |
} |
1661 |
} |
|
1662 |
||
1663 |
/** |
|
1664 |
* Reorder JavaScript scripts array to place prototype before jQuery. |
|
1665 |
* |
|
1666 |
* @since 2.3.1 |
|
1667 |
* |
|
1668 |
* @param array $js_array JavaScript scripts array |
|
1669 |
* @return array Reordered array, if needed. |
|
1670 |
*/ |
|
1671 |
function wp_prototype_before_jquery( $js_array ) { |
|
16 | 1672 |
$prototype = array_search( 'prototype', $js_array, true ); |
1673 |
||
1674 |
if ( false === $prototype ) { |
|
0 | 1675 |
return $js_array; |
9 | 1676 |
} |
0 | 1677 |
|
16 | 1678 |
$jquery = array_search( 'jquery', $js_array, true ); |
1679 |
||
1680 |
if ( false === $jquery ) { |
|
0 | 1681 |
return $js_array; |
9 | 1682 |
} |
0 | 1683 |
|
9 | 1684 |
if ( $prototype < $jquery ) { |
0 | 1685 |
return $js_array; |
9 | 1686 |
} |
0 | 1687 |
|
9 | 1688 |
unset( $js_array[ $prototype ] ); |
0 | 1689 |
|
1690 |
array_splice( $js_array, $jquery, 0, 'prototype' ); |
|
1691 |
||
1692 |
return $js_array; |
|
1693 |
} |
|
1694 |
||
1695 |
/** |
|
1696 |
* Load localized data on print rather than initialization. |
|
1697 |
* |
|
1698 |
* These localizations require information that may not be loaded even by init. |
|
1699 |
* |
|
1700 |
* @since 2.5.0 |
|
1701 |
*/ |
|
1702 |
function wp_just_in_time_script_localization() { |
|
1703 |
||
9 | 1704 |
wp_localize_script( |
1705 |
'autosave', |
|
1706 |
'autosaveL10n', |
|
1707 |
array( |
|
1708 |
'autosaveInterval' => AUTOSAVE_INTERVAL, |
|
1709 |
'blog_id' => get_current_blog_id(), |
|
1710 |
) |
|
1711 |
); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1712 |
|
9 | 1713 |
wp_localize_script( |
1714 |
'mce-view', |
|
1715 |
'mceViewL10n', |
|
1716 |
array( |
|
1717 |
'shortcodes' => ! empty( $GLOBALS['shortcode_tags'] ) ? array_keys( $GLOBALS['shortcode_tags'] ) : array(), |
|
1718 |
) |
|
1719 |
); |
|
1720 |
||
1721 |
wp_localize_script( |
|
1722 |
'word-count', |
|
1723 |
'wordCountL10n', |
|
1724 |
array( |
|
1725 |
/* |
|
1726 |
* translators: If your word count is based on single characters (e.g. East Asian characters), |
|
1727 |
* enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'. |
|
1728 |
* Do not translate into your own language. |
|
1729 |
*/ |
|
1730 |
'type' => _x( 'words', 'Word count type. Do not translate!' ), |
|
1731 |
'shortcodes' => ! empty( $GLOBALS['shortcode_tags'] ) ? array_keys( $GLOBALS['shortcode_tags'] ) : array(), |
|
1732 |
) |
|
1733 |
); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1734 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1735 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1736 |
/** |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1737 |
* Localizes the jQuery UI datepicker. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1738 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1739 |
* @since 4.6.0 |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1740 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1741 |
* @link https://api.jqueryui.com/datepicker/#options |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1742 |
* |
16 | 1743 |
* @global WP_Locale $wp_locale WordPress date and time locale object. |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1744 |
*/ |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1745 |
function wp_localize_jquery_ui_datepicker() { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1746 |
global $wp_locale; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1747 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1748 |
if ( ! wp_script_is( 'jquery-ui-datepicker', 'enqueued' ) ) { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1749 |
return; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1750 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1751 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1752 |
// Convert the PHP date format into jQuery UI's format. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1753 |
$datepicker_date_format = str_replace( |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1754 |
array( |
9 | 1755 |
'd', |
1756 |
'j', |
|
1757 |
'l', |
|
1758 |
'z', // Day. |
|
1759 |
'F', |
|
1760 |
'M', |
|
1761 |
'n', |
|
1762 |
'm', // Month. |
|
1763 |
'Y', |
|
16 | 1764 |
'y', // Year. |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1765 |
), |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1766 |
array( |
9 | 1767 |
'dd', |
1768 |
'd', |
|
1769 |
'DD', |
|
1770 |
'o', |
|
1771 |
'MM', |
|
1772 |
'M', |
|
1773 |
'm', |
|
1774 |
'mm', |
|
1775 |
'yy', |
|
1776 |
'y', |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1777 |
), |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1778 |
get_option( 'date_format' ) |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1779 |
); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1780 |
|
9 | 1781 |
$datepicker_defaults = wp_json_encode( |
1782 |
array( |
|
1783 |
'closeText' => __( 'Close' ), |
|
1784 |
'currentText' => __( 'Today' ), |
|
1785 |
'monthNames' => array_values( $wp_locale->month ), |
|
1786 |
'monthNamesShort' => array_values( $wp_locale->month_abbrev ), |
|
1787 |
'nextText' => __( 'Next' ), |
|
1788 |
'prevText' => __( 'Previous' ), |
|
1789 |
'dayNames' => array_values( $wp_locale->weekday ), |
|
1790 |
'dayNamesShort' => array_values( $wp_locale->weekday_abbrev ), |
|
1791 |
'dayNamesMin' => array_values( $wp_locale->weekday_initial ), |
|
1792 |
'dateFormat' => $datepicker_date_format, |
|
1793 |
'firstDay' => absint( get_option( 'start_of_week' ) ), |
|
1794 |
'isRTL' => $wp_locale->is_rtl(), |
|
1795 |
) |
|
1796 |
); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1797 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1798 |
wp_add_inline_script( 'jquery-ui-datepicker', "jQuery(document).ready(function(jQuery){jQuery.datepicker.setDefaults({$datepicker_defaults});});" ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1799 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1800 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1801 |
/** |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1802 |
* Localizes community events data that needs to be passed to dashboard.js. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1803 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1804 |
* @since 4.8.0 |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1805 |
*/ |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1806 |
function wp_localize_community_events() { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1807 |
if ( ! wp_script_is( 'dashboard' ) ) { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1808 |
return; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1809 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1810 |
|
16 | 1811 |
require_once ABSPATH . 'wp-admin/includes/class-wp-community-events.php'; |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1812 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1813 |
$user_id = get_current_user_id(); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1814 |
$saved_location = get_user_option( 'community-events-location', $user_id ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1815 |
$saved_ip_address = isset( $saved_location['ip'] ) ? $saved_location['ip'] : false; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1816 |
$current_ip_address = WP_Community_Events::get_unsafe_client_ip(); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1817 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1818 |
/* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1819 |
* If the user's location is based on their IP address, then update their |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1820 |
* location when their IP address changes. This allows them to see events |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1821 |
* in their current city when travelling. Otherwise, they would always be |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1822 |
* shown events in the city where they were when they first loaded the |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1823 |
* Dashboard, which could have been months or years ago. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1824 |
*/ |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1825 |
if ( $saved_ip_address && $current_ip_address && $current_ip_address !== $saved_ip_address ) { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1826 |
$saved_location['ip'] = $current_ip_address; |
18 | 1827 |
update_user_meta( $user_id, 'community-events-location', $saved_location ); |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1828 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1829 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1830 |
$events_client = new WP_Community_Events( $user_id, $saved_location ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1831 |
|
9 | 1832 |
wp_localize_script( |
1833 |
'dashboard', |
|
1834 |
'communityEventsData', |
|
1835 |
array( |
|
18 | 1836 |
'nonce' => wp_create_nonce( 'community_events' ), |
1837 |
'cache' => $events_client->get_cached_events(), |
|
1838 |
'time_format' => get_option( 'time_format' ), |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1839 |
) |
9 | 1840 |
); |
0 | 1841 |
} |
1842 |
||
1843 |
/** |
|
1844 |
* Administration Screen CSS for changing the styles. |
|
1845 |
* |
|
1846 |
* If installing the 'wp-admin/' directory will be replaced with './'. |
|
1847 |
* |
|
1848 |
* The $_wp_admin_css_colors global manages the Administration Screens CSS |
|
1849 |
* stylesheet that is loaded. The option that is set is 'admin_color' and is the |
|
1850 |
* color and key for the array. The value for the color key is an object with |
|
1851 |
* a 'url' parameter that has the URL path to the CSS file. |
|
1852 |
* |
|
1853 |
* The query from $src parameter will be appended to the URL that is given from |
|
1854 |
* the $_wp_admin_css_colors array value URL. |
|
1855 |
* |
|
1856 |
* @since 2.6.0 |
|
16 | 1857 |
* |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1858 |
* @global array $_wp_admin_css_colors |
0 | 1859 |
* |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1860 |
* @param string $src Source URL. |
0 | 1861 |
* @param string $handle Either 'colors' or 'colors-rtl'. |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1862 |
* @return string|false URL path to CSS stylesheet for Administration Screens. |
0 | 1863 |
*/ |
1864 |
function wp_style_loader_src( $src, $handle ) { |
|
5 | 1865 |
global $_wp_admin_css_colors; |
1866 |
||
9 | 1867 |
if ( wp_installing() ) { |
0 | 1868 |
return preg_replace( '#^wp-admin/#', './', $src ); |
9 | 1869 |
} |
0 | 1870 |
|
16 | 1871 |
if ( 'colors' === $handle ) { |
9 | 1872 |
$color = get_user_option( 'admin_color' ); |
0 | 1873 |
|
9 | 1874 |
if ( empty( $color ) || ! isset( $_wp_admin_css_colors[ $color ] ) ) { |
0 | 1875 |
$color = 'fresh'; |
9 | 1876 |
} |
0 | 1877 |
|
9 | 1878 |
$color = $_wp_admin_css_colors[ $color ]; |
1879 |
$url = $color->url; |
|
0 | 1880 |
|
5 | 1881 |
if ( ! $url ) { |
1882 |
return false; |
|
1883 |
} |
|
0 | 1884 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1885 |
$parsed = parse_url( $src ); |
9 | 1886 |
if ( isset( $parsed['query'] ) && $parsed['query'] ) { |
0 | 1887 |
wp_parse_str( $parsed['query'], $qv ); |
1888 |
$url = add_query_arg( $qv, $url ); |
|
1889 |
} |
|
1890 |
||
1891 |
return $url; |
|
1892 |
} |
|
1893 |
||
1894 |
return $src; |
|
1895 |
} |
|
1896 |
||
1897 |
/** |
|
1898 |
* Prints the script queue in the HTML head on admin pages. |
|
1899 |
* |
|
1900 |
* Postpones the scripts that were queued for the footer. |
|
1901 |
* print_footer_scripts() is called in the footer to print these scripts. |
|
1902 |
* |
|
5 | 1903 |
* @since 2.8.0 |
1904 |
* |
|
0 | 1905 |
* @see wp_print_scripts() |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1906 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1907 |
* @global bool $concatenate_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1908 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1909 |
* @return array |
0 | 1910 |
*/ |
1911 |
function print_head_scripts() { |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1912 |
global $concatenate_scripts; |
0 | 1913 |
|
9 | 1914 |
if ( ! did_action( 'wp_print_scripts' ) ) { |
5 | 1915 |
/** This action is documented in wp-includes/functions.wp-scripts.php */ |
1916 |
do_action( 'wp_print_scripts' ); |
|
1917 |
} |
|
0 | 1918 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1919 |
$wp_scripts = wp_scripts(); |
0 | 1920 |
|
1921 |
script_concat_settings(); |
|
1922 |
$wp_scripts->do_concat = $concatenate_scripts; |
|
1923 |
$wp_scripts->do_head_items(); |
|
1924 |
||
5 | 1925 |
/** |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1926 |
* Filters whether to print the head scripts. |
5 | 1927 |
* |
1928 |
* @since 2.8.0 |
|
1929 |
* |
|
1930 |
* @param bool $print Whether to print the head scripts. Default true. |
|
1931 |
*/ |
|
1932 |
if ( apply_filters( 'print_head_scripts', true ) ) { |
|
0 | 1933 |
_print_scripts(); |
5 | 1934 |
} |
0 | 1935 |
|
1936 |
$wp_scripts->reset(); |
|
1937 |
return $wp_scripts->done; |
|
1938 |
} |
|
1939 |
||
1940 |
/** |
|
1941 |
* Prints the scripts that were queued for the footer or too late for the HTML head. |
|
1942 |
* |
|
5 | 1943 |
* @since 2.8.0 |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1944 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1945 |
* @global WP_Scripts $wp_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1946 |
* @global bool $concatenate_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1947 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1948 |
* @return array |
0 | 1949 |
*/ |
1950 |
function print_footer_scripts() { |
|
1951 |
global $wp_scripts, $concatenate_scripts; |
|
1952 |
||
5 | 1953 |
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) { |
0 | 1954 |
return array(); // No need to run if not instantiated. |
5 | 1955 |
} |
0 | 1956 |
script_concat_settings(); |
1957 |
$wp_scripts->do_concat = $concatenate_scripts; |
|
1958 |
$wp_scripts->do_footer_items(); |
|
1959 |
||
5 | 1960 |
/** |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1961 |
* Filters whether to print the footer scripts. |
5 | 1962 |
* |
1963 |
* @since 2.8.0 |
|
1964 |
* |
|
1965 |
* @param bool $print Whether to print the footer scripts. Default true. |
|
1966 |
*/ |
|
1967 |
if ( apply_filters( 'print_footer_scripts', true ) ) { |
|
0 | 1968 |
_print_scripts(); |
5 | 1969 |
} |
0 | 1970 |
|
1971 |
$wp_scripts->reset(); |
|
1972 |
return $wp_scripts->done; |
|
1973 |
} |
|
1974 |
||
1975 |
/** |
|
5 | 1976 |
* Print scripts (internal use only) |
1977 |
* |
|
1978 |
* @ignore |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1979 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1980 |
* @global WP_Scripts $wp_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
1981 |
* @global bool $compress_scripts |
0 | 1982 |
*/ |
1983 |
function _print_scripts() { |
|
1984 |
global $wp_scripts, $compress_scripts; |
|
1985 |
||
1986 |
$zip = $compress_scripts ? 1 : 0; |
|
9 | 1987 |
if ( $zip && defined( 'ENFORCE_GZIP' ) && ENFORCE_GZIP ) { |
0 | 1988 |
$zip = 'gzip'; |
9 | 1989 |
} |
0 | 1990 |
|
16 | 1991 |
$concat = trim( $wp_scripts->concat, ', ' ); |
1992 |
$type_attr = current_theme_supports( 'html5', 'script' ) ? '' : " type='text/javascript'"; |
|
0 | 1993 |
|
16 | 1994 |
if ( $concat ) { |
9 | 1995 |
if ( ! empty( $wp_scripts->print_code ) ) { |
16 | 1996 |
echo "\n<script{$type_attr}>\n"; |
1997 |
echo "/* <![CDATA[ */\n"; // Not needed in HTML 5. |
|
0 | 1998 |
echo $wp_scripts->print_code; |
1999 |
echo "/* ]]> */\n"; |
|
2000 |
echo "</script>\n"; |
|
2001 |
} |
|
2002 |
||
16 | 2003 |
$concat = str_split( $concat, 128 ); |
2004 |
$concatenated = ''; |
|
0 | 2005 |
|
16 | 2006 |
foreach ( $concat as $key => $chunk ) { |
2007 |
$concatenated .= "&load%5Bchunk_{$key}%5D={$chunk}"; |
|
2008 |
} |
|
2009 |
||
2010 |
$src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}" . $concatenated . '&ver=' . $wp_scripts->default_version; |
|
2011 |
echo "<script{$type_attr} src='" . esc_attr( $src ) . "'></script>\n"; |
|
0 | 2012 |
} |
2013 |
||
9 | 2014 |
if ( ! empty( $wp_scripts->print_html ) ) { |
0 | 2015 |
echo $wp_scripts->print_html; |
9 | 2016 |
} |
0 | 2017 |
} |
2018 |
||
2019 |
/** |
|
2020 |
* Prints the script queue in the HTML head on the front end. |
|
2021 |
* |
|
2022 |
* Postpones the scripts that were queued for the footer. |
|
2023 |
* wp_print_footer_scripts() is called in the footer to print these scripts. |
|
2024 |
* |
|
5 | 2025 |
* @since 2.8.0 |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2026 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2027 |
* @global WP_Scripts $wp_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2028 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2029 |
* @return array |
0 | 2030 |
*/ |
2031 |
function wp_print_head_scripts() { |
|
9 | 2032 |
if ( ! did_action( 'wp_print_scripts' ) ) { |
5 | 2033 |
/** This action is documented in wp-includes/functions.wp-scripts.php */ |
2034 |
do_action( 'wp_print_scripts' ); |
|
2035 |
} |
|
0 | 2036 |
|
2037 |
global $wp_scripts; |
|
2038 |
||
5 | 2039 |
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) { |
16 | 2040 |
return array(); // No need to run if nothing is queued. |
5 | 2041 |
} |
0 | 2042 |
return print_head_scripts(); |
2043 |
} |
|
2044 |
||
2045 |
/** |
|
2046 |
* Private, for use in *_footer_scripts hooks |
|
2047 |
* |
|
2048 |
* @since 3.3.0 |
|
2049 |
*/ |
|
2050 |
function _wp_footer_scripts() { |
|
2051 |
print_late_styles(); |
|
2052 |
print_footer_scripts(); |
|
2053 |
} |
|
2054 |
||
2055 |
/** |
|
2056 |
* Hooks to print the scripts and styles in the footer. |
|
2057 |
* |
|
5 | 2058 |
* @since 2.8.0 |
0 | 2059 |
*/ |
2060 |
function wp_print_footer_scripts() { |
|
5 | 2061 |
/** |
2062 |
* Fires when footer scripts are printed. |
|
2063 |
* |
|
2064 |
* @since 2.8.0 |
|
2065 |
*/ |
|
2066 |
do_action( 'wp_print_footer_scripts' ); |
|
0 | 2067 |
} |
2068 |
||
2069 |
/** |
|
16 | 2070 |
* Wrapper for do_action( 'wp_enqueue_scripts' ). |
0 | 2071 |
* |
2072 |
* Allows plugins to queue scripts for the front end using wp_enqueue_script(). |
|
2073 |
* Runs first in wp_head() where all is_home(), is_page(), etc. functions are available. |
|
2074 |
* |
|
5 | 2075 |
* @since 2.8.0 |
0 | 2076 |
*/ |
2077 |
function wp_enqueue_scripts() { |
|
5 | 2078 |
/** |
2079 |
* Fires when scripts and styles are enqueued. |
|
2080 |
* |
|
2081 |
* @since 2.8.0 |
|
2082 |
*/ |
|
2083 |
do_action( 'wp_enqueue_scripts' ); |
|
0 | 2084 |
} |
2085 |
||
2086 |
/** |
|
2087 |
* Prints the styles queue in the HTML head on admin pages. |
|
2088 |
* |
|
5 | 2089 |
* @since 2.8.0 |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2090 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2091 |
* @global bool $concatenate_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2092 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2093 |
* @return array |
0 | 2094 |
*/ |
2095 |
function print_admin_styles() { |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2096 |
global $concatenate_scripts; |
0 | 2097 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2098 |
$wp_styles = wp_styles(); |
0 | 2099 |
|
2100 |
script_concat_settings(); |
|
2101 |
$wp_styles->do_concat = $concatenate_scripts; |
|
9 | 2102 |
$wp_styles->do_items( false ); |
0 | 2103 |
|
5 | 2104 |
/** |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2105 |
* Filters whether to print the admin styles. |
5 | 2106 |
* |
2107 |
* @since 2.8.0 |
|
2108 |
* |
|
2109 |
* @param bool $print Whether to print the admin styles. Default true. |
|
2110 |
*/ |
|
2111 |
if ( apply_filters( 'print_admin_styles', true ) ) { |
|
0 | 2112 |
_print_styles(); |
5 | 2113 |
} |
0 | 2114 |
|
2115 |
$wp_styles->reset(); |
|
2116 |
return $wp_styles->done; |
|
2117 |
} |
|
2118 |
||
2119 |
/** |
|
2120 |
* Prints the styles that were queued too late for the HTML head. |
|
2121 |
* |
|
2122 |
* @since 3.3.0 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2123 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2124 |
* @global WP_Styles $wp_styles |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2125 |
* @global bool $concatenate_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2126 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2127 |
* @return array|void |
0 | 2128 |
*/ |
2129 |
function print_late_styles() { |
|
2130 |
global $wp_styles, $concatenate_scripts; |
|
2131 |
||
5 | 2132 |
if ( ! ( $wp_styles instanceof WP_Styles ) ) { |
0 | 2133 |
return; |
5 | 2134 |
} |
0 | 2135 |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2136 |
script_concat_settings(); |
0 | 2137 |
$wp_styles->do_concat = $concatenate_scripts; |
2138 |
$wp_styles->do_footer_items(); |
|
2139 |
||
5 | 2140 |
/** |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2141 |
* Filters whether to print the styles queued too late for the HTML head. |
5 | 2142 |
* |
2143 |
* @since 3.3.0 |
|
2144 |
* |
|
2145 |
* @param bool $print Whether to print the 'late' styles. Default true. |
|
2146 |
*/ |
|
2147 |
if ( apply_filters( 'print_late_styles', true ) ) { |
|
0 | 2148 |
_print_styles(); |
5 | 2149 |
} |
0 | 2150 |
|
2151 |
$wp_styles->reset(); |
|
2152 |
return $wp_styles->done; |
|
2153 |
} |
|
2154 |
||
2155 |
/** |
|
5 | 2156 |
* Print styles (internal use only) |
2157 |
* |
|
2158 |
* @ignore |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2159 |
* @since 3.3.0 |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2160 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2161 |
* @global bool $compress_css |
0 | 2162 |
*/ |
2163 |
function _print_styles() { |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2164 |
global $compress_css; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2165 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2166 |
$wp_styles = wp_styles(); |
0 | 2167 |
|
2168 |
$zip = $compress_css ? 1 : 0; |
|
9 | 2169 |
if ( $zip && defined( 'ENFORCE_GZIP' ) && ENFORCE_GZIP ) { |
0 | 2170 |
$zip = 'gzip'; |
9 | 2171 |
} |
0 | 2172 |
|
16 | 2173 |
$concat = trim( $wp_styles->concat, ', ' ); |
2174 |
$type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"'; |
|
2175 |
||
2176 |
if ( $concat ) { |
|
0 | 2177 |
$dir = $wp_styles->text_direction; |
2178 |
$ver = $wp_styles->default_version; |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2179 |
|
16 | 2180 |
$concat = str_split( $concat, 128 ); |
2181 |
$concatenated = ''; |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2182 |
|
16 | 2183 |
foreach ( $concat as $key => $chunk ) { |
2184 |
$concatenated .= "&load%5Bchunk_{$key}%5D={$chunk}"; |
|
2185 |
} |
|
2186 |
||
2187 |
$href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&dir={$dir}" . $concatenated . '&ver=' . $ver; |
|
2188 |
echo "<link rel='stylesheet' href='" . esc_attr( $href ) . "'{$type_attr} media='all' />\n"; |
|
0 | 2189 |
|
9 | 2190 |
if ( ! empty( $wp_styles->print_code ) ) { |
16 | 2191 |
echo "<style{$type_attr}>\n"; |
0 | 2192 |
echo $wp_styles->print_code; |
2193 |
echo "\n</style>\n"; |
|
2194 |
} |
|
2195 |
} |
|
2196 |
||
9 | 2197 |
if ( ! empty( $wp_styles->print_html ) ) { |
0 | 2198 |
echo $wp_styles->print_html; |
9 | 2199 |
} |
0 | 2200 |
} |
2201 |
||
2202 |
/** |
|
2203 |
* Determine the concatenation and compression settings for scripts and styles. |
|
2204 |
* |
|
5 | 2205 |
* @since 2.8.0 |
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2206 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2207 |
* @global bool $concatenate_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2208 |
* @global bool $compress_scripts |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
2209 |
* @global bool $compress_css |
0 | 2210 |
*/ |
2211 |
function script_concat_settings() { |
|
2212 |
global $concatenate_scripts, $compress_scripts, $compress_css; |
|
2213 |
||
16 | 2214 |
$compressed_output = ( ini_get( 'zlib.output_compression' ) || 'ob_gzhandler' === ini_get( 'output_handler' ) ); |
9 | 2215 |
|
2216 |
if ( ! isset( $concatenate_scripts ) ) { |
|
2217 |
$concatenate_scripts = defined( 'CONCATENATE_SCRIPTS' ) ? CONCATENATE_SCRIPTS : true; |
|
2218 |
if ( ( ! is_admin() && ! did_action( 'login_init' ) ) || ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ) { |
|
2219 |
$concatenate_scripts = false; |
|
2220 |
} |
|
2221 |
} |
|
2222 |
||
2223 |
if ( ! isset( $compress_scripts ) ) { |
|
2224 |
$compress_scripts = defined( 'COMPRESS_SCRIPTS' ) ? COMPRESS_SCRIPTS : true; |
|
2225 |
if ( $compress_scripts && ( ! get_site_option( 'can_compress_scripts' ) || $compressed_output ) ) { |
|
2226 |
$compress_scripts = false; |
|
2227 |
} |
|
2228 |
} |
|
0 | 2229 |
|
9 | 2230 |
if ( ! isset( $compress_css ) ) { |
2231 |
$compress_css = defined( 'COMPRESS_CSS' ) ? COMPRESS_CSS : true; |
|
2232 |
if ( $compress_css && ( ! get_site_option( 'can_compress_scripts' ) || $compressed_output ) ) { |
|
2233 |
$compress_css = false; |
|
2234 |
} |
|
2235 |
} |
|
2236 |
} |
|
2237 |
||
2238 |
/** |
|
2239 |
* Handles the enqueueing of block scripts and styles that are common to both |
|
2240 |
* the editor and the front-end. |
|
2241 |
* |
|
2242 |
* @since 5.0.0 |
|
2243 |
* |
|
16 | 2244 |
* @global WP_Screen $current_screen WordPress current screen object. |
9 | 2245 |
*/ |
2246 |
function wp_common_block_scripts_and_styles() { |
|
18 | 2247 |
if ( is_admin() && ! wp_should_load_block_editor_scripts_and_styles() ) { |
9 | 2248 |
return; |
2249 |
} |
|
2250 |
||
2251 |
wp_enqueue_style( 'wp-block-library' ); |
|
2252 |
||
2253 |
if ( current_theme_supports( 'wp-block-styles' ) ) { |
|
2254 |
wp_enqueue_style( 'wp-block-library-theme' ); |
|
0 | 2255 |
} |
2256 |
||
9 | 2257 |
/** |
2258 |
* Fires after enqueuing block assets for both editor and front-end. |
|
2259 |
* |
|
2260 |
* Call `add_action` on any hook before 'wp_enqueue_scripts'. |
|
2261 |
* |
|
2262 |
* In the function call you supply, simply use `wp_enqueue_script` and |
|
2263 |
* `wp_enqueue_style` to add your functionality to the Gutenberg editor. |
|
2264 |
* |
|
2265 |
* @since 5.0.0 |
|
2266 |
*/ |
|
16 | 2267 |
do_action( 'enqueue_block_assets' ); |
9 | 2268 |
} |
2269 |
||
2270 |
/** |
|
18 | 2271 |
* Enqueues the global styles defined via theme.json. |
2272 |
* |
|
2273 |
* @since 5.8.0 |
|
2274 |
*/ |
|
2275 |
function wp_enqueue_global_styles() { |
|
2276 |
if ( ! WP_Theme_JSON_Resolver::theme_has_support() ) { |
|
2277 |
return; |
|
2278 |
} |
|
2279 |
||
2280 |
$separate_assets = wp_should_load_separate_core_block_assets(); |
|
2281 |
||
2282 |
/* |
|
2283 |
* Global styles should be printed in the head when loading all styles combined. |
|
2284 |
* The footer should only be used to print global styles for classic themes with separate core assets enabled. |
|
2285 |
* |
|
2286 |
* See https://core.trac.wordpress.org/ticket/53494. |
|
2287 |
*/ |
|
2288 |
if ( ( ! $separate_assets && doing_action( 'wp_footer' ) ) || ( $separate_assets && doing_action( 'wp_enqueue_scripts' ) ) ) { |
|
2289 |
return; |
|
2290 |
} |
|
2291 |
||
2292 |
$can_use_cache = ( |
|
2293 |
( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) && |
|
2294 |
( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ) && |
|
2295 |
( ! defined( 'REST_REQUEST' ) || ! REST_REQUEST ) && |
|
2296 |
! is_admin() |
|
2297 |
); |
|
2298 |
||
2299 |
$stylesheet = null; |
|
2300 |
if ( $can_use_cache ) { |
|
2301 |
$cache = get_transient( 'global_styles' ); |
|
2302 |
if ( $cache ) { |
|
2303 |
$stylesheet = $cache; |
|
2304 |
} |
|
2305 |
} |
|
2306 |
||
2307 |
if ( null === $stylesheet ) { |
|
2308 |
$settings = get_default_block_editor_settings(); |
|
2309 |
$theme_json = WP_Theme_JSON_Resolver::get_merged_data( $settings ); |
|
2310 |
$stylesheet = $theme_json->get_stylesheet(); |
|
2311 |
||
2312 |
if ( $can_use_cache ) { |
|
2313 |
set_transient( 'global_styles', $stylesheet, MINUTE_IN_SECONDS ); |
|
2314 |
} |
|
2315 |
} |
|
2316 |
||
2317 |
if ( empty( $stylesheet ) ) { |
|
2318 |
return; |
|
2319 |
} |
|
2320 |
||
2321 |
wp_register_style( 'global-styles', false, array(), true, true ); |
|
2322 |
wp_add_inline_style( 'global-styles', $stylesheet ); |
|
2323 |
wp_enqueue_style( 'global-styles' ); |
|
2324 |
} |
|
2325 |
||
2326 |
/** |
|
2327 |
* Checks if the editor scripts and styles for all registered block types |
|
2328 |
* should be enqueued on the current screen. |
|
2329 |
* |
|
2330 |
* @since 5.6.0 |
|
2331 |
* |
|
2332 |
* @return bool Whether scripts and styles should be enqueued. |
|
2333 |
*/ |
|
2334 |
function wp_should_load_block_editor_scripts_and_styles() { |
|
2335 |
global $current_screen; |
|
2336 |
||
2337 |
$is_block_editor_screen = ( $current_screen instanceof WP_Screen ) && $current_screen->is_block_editor(); |
|
2338 |
||
2339 |
/** |
|
2340 |
* Filters the flag that decides whether or not block editor scripts and styles |
|
2341 |
* are going to be enqueued on the current screen. |
|
2342 |
* |
|
2343 |
* @since 5.6.0 |
|
2344 |
* |
|
2345 |
* @param bool $is_block_editor_screen Current value of the flag. |
|
2346 |
*/ |
|
2347 |
return apply_filters( 'should_load_block_editor_scripts_and_styles', $is_block_editor_screen ); |
|
2348 |
} |
|
2349 |
||
2350 |
/** |
|
2351 |
* Checks whether separate styles should be loaded for core blocks on-render. |
|
2352 |
* |
|
2353 |
* When this function returns true, other functions ensure that core blocks |
|
2354 |
* only load their assets on-render, and each block loads its own, individual |
|
2355 |
* assets. Third-party blocks only load their assets when rendered. |
|
2356 |
* |
|
2357 |
* When this function returns false, all core block assets are loaded regardless |
|
2358 |
* of whether they are rendered in a page or not, because they are all part of |
|
2359 |
* the `block-library/style.css` file. Assets for third-party blocks are always |
|
2360 |
* enqueued regardless of whether they are rendered or not. |
|
2361 |
* |
|
2362 |
* This only affects front end and not the block editor screens. |
|
2363 |
* |
|
2364 |
* @see wp_enqueue_registered_block_scripts_and_styles() |
|
2365 |
* @see register_block_style_handle() |
|
2366 |
* |
|
2367 |
* @since 5.8.0 |
|
2368 |
* |
|
2369 |
* @return bool Whether separate assets will be loaded. |
|
2370 |
*/ |
|
2371 |
function wp_should_load_separate_core_block_assets() { |
|
2372 |
if ( is_admin() || is_feed() || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ) { |
|
2373 |
return false; |
|
2374 |
} |
|
2375 |
||
2376 |
/** |
|
2377 |
* Filters whether block styles should be loaded separately. |
|
2378 |
* |
|
2379 |
* Returning false loads all core block assets, regardless of whether they are rendered |
|
2380 |
* in a page or not. Returning true loads core block assets only when they are rendered. |
|
2381 |
* |
|
2382 |
* @since 5.8.0 |
|
2383 |
* |
|
2384 |
* @param bool $load_separate_assets Whether separate assets will be loaded. |
|
2385 |
* Default false (all block assets are loaded, even when not used). |
|
2386 |
*/ |
|
2387 |
return apply_filters( 'should_load_separate_core_block_assets', false ); |
|
2388 |
} |
|
2389 |
||
2390 |
/** |
|
9 | 2391 |
* Enqueues registered block scripts and styles, depending on current rendered |
2392 |
* context (only enqueuing editor scripts while in context of the editor). |
|
2393 |
* |
|
2394 |
* @since 5.0.0 |
|
2395 |
* |
|
16 | 2396 |
* @global WP_Screen $current_screen WordPress current screen object. |
9 | 2397 |
*/ |
2398 |
function wp_enqueue_registered_block_scripts_and_styles() { |
|
2399 |
global $current_screen; |
|
0 | 2400 |
|
18 | 2401 |
if ( wp_should_load_separate_core_block_assets() ) { |
2402 |
return; |
|
2403 |
} |
|
2404 |
||
2405 |
$load_editor_scripts = is_admin() && wp_should_load_block_editor_scripts_and_styles(); |
|
9 | 2406 |
|
2407 |
$block_registry = WP_Block_Type_Registry::get_instance(); |
|
2408 |
foreach ( $block_registry->get_all_registered() as $block_name => $block_type ) { |
|
2409 |
// Front-end styles. |
|
2410 |
if ( ! empty( $block_type->style ) ) { |
|
2411 |
wp_enqueue_style( $block_type->style ); |
|
2412 |
} |
|
2413 |
||
2414 |
// Front-end script. |
|
2415 |
if ( ! empty( $block_type->script ) ) { |
|
2416 |
wp_enqueue_script( $block_type->script ); |
|
2417 |
} |
|
2418 |
||
2419 |
// Editor styles. |
|
18 | 2420 |
if ( $load_editor_scripts && ! empty( $block_type->editor_style ) ) { |
9 | 2421 |
wp_enqueue_style( $block_type->editor_style ); |
2422 |
} |
|
2423 |
||
2424 |
// Editor script. |
|
18 | 2425 |
if ( $load_editor_scripts && ! empty( $block_type->editor_script ) ) { |
9 | 2426 |
wp_enqueue_script( $block_type->editor_script ); |
2427 |
} |
|
0 | 2428 |
} |
2429 |
} |
|
16 | 2430 |
|
2431 |
/** |
|
2432 |
* Function responsible for enqueuing the styles required for block styles functionality on the editor and on the frontend. |
|
2433 |
* |
|
2434 |
* @since 5.3.0 |
|
2435 |
*/ |
|
2436 |
function enqueue_block_styles_assets() { |
|
2437 |
$block_styles = WP_Block_Styles_Registry::get_instance()->get_all_registered(); |
|
2438 |
||
18 | 2439 |
foreach ( $block_styles as $block_name => $styles ) { |
16 | 2440 |
foreach ( $styles as $style_properties ) { |
2441 |
if ( isset( $style_properties['style_handle'] ) ) { |
|
18 | 2442 |
|
2443 |
// If the site loads separate styles per-block, enqueue the stylesheet on render. |
|
2444 |
if ( wp_should_load_separate_core_block_assets() ) { |
|
2445 |
add_filter( |
|
2446 |
'render_block', |
|
2447 |
function( $html, $block ) use ( $style_properties ) { |
|
2448 |
wp_enqueue_style( $style_properties['style_handle'] ); |
|
2449 |
return $html; |
|
2450 |
} |
|
2451 |
); |
|
2452 |
} else { |
|
2453 |
wp_enqueue_style( $style_properties['style_handle'] ); |
|
2454 |
} |
|
16 | 2455 |
} |
2456 |
if ( isset( $style_properties['inline_style'] ) ) { |
|
18 | 2457 |
|
2458 |
// Default to "wp-block-library". |
|
2459 |
$handle = 'wp-block-library'; |
|
2460 |
||
2461 |
// If the site loads separate styles per-block, check if the block has a stylesheet registered. |
|
2462 |
if ( wp_should_load_separate_core_block_assets() ) { |
|
2463 |
$block_stylesheet_handle = generate_block_asset_handle( $block_name, 'style' ); |
|
2464 |
global $wp_styles; |
|
2465 |
if ( isset( $wp_styles->registered[ $block_stylesheet_handle ] ) ) { |
|
2466 |
$handle = $block_stylesheet_handle; |
|
2467 |
} |
|
2468 |
} |
|
2469 |
||
2470 |
// Add inline styles to the calculated handle. |
|
2471 |
wp_add_inline_style( $handle, $style_properties['inline_style'] ); |
|
16 | 2472 |
} |
2473 |
} |
|
2474 |
} |
|
2475 |
} |
|
2476 |
||
2477 |
/** |
|
2478 |
* Function responsible for enqueuing the assets required for block styles functionality on the editor. |
|
2479 |
* |
|
2480 |
* @since 5.3.0 |
|
2481 |
*/ |
|
2482 |
function enqueue_editor_block_styles_assets() { |
|
2483 |
$block_styles = WP_Block_Styles_Registry::get_instance()->get_all_registered(); |
|
2484 |
||
2485 |
$register_script_lines = array( '( function() {' ); |
|
2486 |
foreach ( $block_styles as $block_name => $styles ) { |
|
2487 |
foreach ( $styles as $style_properties ) { |
|
18 | 2488 |
$block_style = array( |
2489 |
'name' => $style_properties['name'], |
|
2490 |
'label' => $style_properties['label'], |
|
2491 |
); |
|
2492 |
if ( isset( $style_properties['is_default'] ) ) { |
|
2493 |
$block_style['isDefault'] = $style_properties['is_default']; |
|
2494 |
} |
|
16 | 2495 |
$register_script_lines[] = sprintf( |
2496 |
' wp.blocks.registerBlockStyle( \'%s\', %s );', |
|
2497 |
$block_name, |
|
18 | 2498 |
wp_json_encode( $block_style ) |
16 | 2499 |
); |
2500 |
} |
|
2501 |
} |
|
2502 |
$register_script_lines[] = '} )();'; |
|
2503 |
$inline_script = implode( "\n", $register_script_lines ); |
|
2504 |
||
2505 |
wp_register_script( 'wp-block-styles', false, array( 'wp-blocks' ), true, true ); |
|
2506 |
wp_add_inline_script( 'wp-block-styles', $inline_script ); |
|
2507 |
wp_enqueue_script( 'wp-block-styles' ); |
|
2508 |
} |
|
2509 |
||
2510 |
/** |
|
2511 |
* Enqueues the assets required for the block directory within the block editor. |
|
2512 |
* |
|
2513 |
* @since 5.5.0 |
|
2514 |
*/ |
|
2515 |
function wp_enqueue_editor_block_directory_assets() { |
|
2516 |
wp_enqueue_script( 'wp-block-directory' ); |
|
2517 |
wp_enqueue_style( 'wp-block-directory' ); |
|
2518 |
} |
|
18 | 2519 |
|
2520 |
/** |
|
2521 |
* Enqueues the assets required for the format library within the block editor. |
|
2522 |
* |
|
2523 |
* @since 5.8.0 |
|
2524 |
*/ |
|
2525 |
function wp_enqueue_editor_format_library_assets() { |
|
2526 |
wp_enqueue_script( 'wp-format-library' ); |
|
2527 |
wp_enqueue_style( 'wp-format-library' ); |
|
2528 |
} |
|
2529 |
||
2530 |
/** |
|
2531 |
* Sanitizes an attributes array into an attributes string to be placed inside a `<script>` tag. |
|
2532 |
* |
|
2533 |
* Automatically injects type attribute if needed. |
|
2534 |
* Used by {@see wp_get_script_tag()} and {@see wp_get_inline_script_tag()}. |
|
2535 |
* |
|
2536 |
* @since 5.7.0 |
|
2537 |
* |
|
2538 |
* @param array $attributes Key-value pairs representing `<script>` tag attributes. |
|
2539 |
* @return string String made of sanitized `<script>` tag attributes. |
|
2540 |
*/ |
|
2541 |
function wp_sanitize_script_attributes( $attributes ) { |
|
2542 |
$html5_script_support = ! is_admin() && ! current_theme_supports( 'html5', 'script' ); |
|
2543 |
$attributes_string = ''; |
|
2544 |
||
2545 |
// If HTML5 script tag is supported, only the attribute name is added |
|
2546 |
// to $attributes_string for entries with a boolean value, and that are true. |
|
2547 |
foreach ( $attributes as $attribute_name => $attribute_value ) { |
|
2548 |
if ( is_bool( $attribute_value ) ) { |
|
2549 |
if ( $attribute_value ) { |
|
2550 |
$attributes_string .= $html5_script_support ? sprintf( ' %1$s="%2$s"', esc_attr( $attribute_name ), esc_attr( $attribute_name ) ) : ' ' . esc_attr( $attribute_name ); |
|
2551 |
} |
|
2552 |
} else { |
|
2553 |
$attributes_string .= sprintf( ' %1$s="%2$s"', esc_attr( $attribute_name ), esc_attr( $attribute_value ) ); |
|
2554 |
} |
|
2555 |
} |
|
2556 |
||
2557 |
return $attributes_string; |
|
2558 |
} |
|
2559 |
||
2560 |
/** |
|
2561 |
* Formats `<script>` loader tags. |
|
2562 |
* |
|
2563 |
* It is possible to inject attributes in the `<script>` tag via the {@see 'wp_script_attributes'} filter. |
|
2564 |
* Automatically injects type attribute if needed. |
|
2565 |
* |
|
2566 |
* @since 5.7.0 |
|
2567 |
* |
|
2568 |
* @param array $attributes Key-value pairs representing `<script>` tag attributes. |
|
2569 |
* @return string String containing `<script>` opening and closing tags. |
|
2570 |
*/ |
|
2571 |
function wp_get_script_tag( $attributes ) { |
|
2572 |
if ( ! isset( $attributes['type'] ) && ! is_admin() && ! current_theme_supports( 'html5', 'script' ) ) { |
|
2573 |
$attributes['type'] = 'text/javascript'; |
|
2574 |
} |
|
2575 |
/** |
|
2576 |
* Filters attributes to be added to a script tag. |
|
2577 |
* |
|
2578 |
* @since 5.7.0 |
|
2579 |
* |
|
2580 |
* @param array $attributes Key-value pairs representing `<script>` tag attributes. |
|
2581 |
* Only the attribute name is added to the `<script>` tag for |
|
2582 |
* entries with a boolean value, and that are true. |
|
2583 |
*/ |
|
2584 |
$attributes = apply_filters( 'wp_script_attributes', $attributes ); |
|
2585 |
||
2586 |
return sprintf( "<script%s></script>\n", wp_sanitize_script_attributes( $attributes ) ); |
|
2587 |
} |
|
2588 |
||
2589 |
/** |
|
2590 |
* Prints formatted `<script>` loader tag. |
|
2591 |
* |
|
2592 |
* It is possible to inject attributes in the `<script>` tag via the {@see 'wp_script_attributes'} filter. |
|
2593 |
* Automatically injects type attribute if needed. |
|
2594 |
* |
|
2595 |
* @since 5.7.0 |
|
2596 |
* |
|
2597 |
* @param array $attributes Key-value pairs representing `<script>` tag attributes. |
|
2598 |
*/ |
|
2599 |
function wp_print_script_tag( $attributes ) { |
|
2600 |
echo wp_get_script_tag( $attributes ); |
|
2601 |
} |
|
2602 |
||
2603 |
/** |
|
2604 |
* Wraps inline JavaScript in `<script>` tag. |
|
2605 |
* |
|
2606 |
* It is possible to inject attributes in the `<script>` tag via the {@see 'wp_script_attributes'} filter. |
|
2607 |
* Automatically injects type attribute if needed. |
|
2608 |
* |
|
2609 |
* @since 5.7.0 |
|
2610 |
* |
|
2611 |
* @param string $javascript Inline JavaScript code. |
|
2612 |
* @param array $attributes Optional. Key-value pairs representing `<script>` tag attributes. |
|
2613 |
* @return string String containing inline JavaScript code wrapped around `<script>` tag. |
|
2614 |
*/ |
|
2615 |
function wp_get_inline_script_tag( $javascript, $attributes = array() ) { |
|
2616 |
if ( ! isset( $attributes['type'] ) && ! is_admin() && ! current_theme_supports( 'html5', 'script' ) ) { |
|
2617 |
$attributes['type'] = 'text/javascript'; |
|
2618 |
} |
|
2619 |
/** |
|
2620 |
* Filters attributes to be added to a script tag. |
|
2621 |
* |
|
2622 |
* @since 5.7.0 |
|
2623 |
* |
|
2624 |
* @param array $attributes Key-value pairs representing `<script>` tag attributes. |
|
2625 |
* Only the attribute name is added to the `<script>` tag for |
|
2626 |
* entries with a boolean value, and that are true. |
|
2627 |
*/ |
|
2628 |
$attributes = apply_filters( 'wp_inline_script_attributes', $attributes, $javascript ); |
|
2629 |
||
2630 |
$javascript = "\n" . trim( $javascript, "\n\r " ) . "\n"; |
|
2631 |
||
2632 |
return sprintf( "<script%s>%s</script>\n", wp_sanitize_script_attributes( $attributes ), $javascript ); |
|
2633 |
} |
|
2634 |
||
2635 |
/** |
|
2636 |
* Prints inline JavaScript wrapped in `<script>` tag. |
|
2637 |
* |
|
2638 |
* It is possible to inject attributes in the `<script>` tag via the {@see 'wp_script_attributes'} filter. |
|
2639 |
* Automatically injects type attribute if needed. |
|
2640 |
* |
|
2641 |
* @since 5.7.0 |
|
2642 |
* |
|
2643 |
* @param string $javascript Inline JavaScript code. |
|
2644 |
* @param array $attributes Optional. Key-value pairs representing `<script>` tag attributes. |
|
2645 |
*/ |
|
2646 |
function wp_print_inline_script_tag( $javascript, $attributes = array() ) { |
|
2647 |
echo wp_get_inline_script_tag( $javascript, $attributes ); |
|
2648 |
} |
|
2649 |
||
2650 |
/** |
|
2651 |
* Allows small styles to be inlined. |
|
2652 |
* |
|
2653 |
* This improves performance and sustainability, and is opt-in. Stylesheets can opt in |
|
2654 |
* by adding `path` data using `wp_style_add_data`, and defining the file's absolute path: |
|
2655 |
* |
|
2656 |
* wp_style_add_data( $style_handle, 'path', $file_path ); |
|
2657 |
* |
|
2658 |
* @since 5.8.0 |
|
2659 |
* |
|
2660 |
* @global WP_Styles $wp_styles |
|
2661 |
*/ |
|
2662 |
function wp_maybe_inline_styles() { |
|
2663 |
global $wp_styles; |
|
2664 |
||
2665 |
$total_inline_limit = 20000; |
|
2666 |
/** |
|
2667 |
* The maximum size of inlined styles in bytes. |
|
2668 |
* |
|
2669 |
* @since 5.8.0 |
|
2670 |
* |
|
2671 |
* @param int $total_inline_limit The file-size threshold, in bytes. Default 20000. |
|
2672 |
*/ |
|
2673 |
$total_inline_limit = apply_filters( 'styles_inline_size_limit', $total_inline_limit ); |
|
2674 |
||
2675 |
$styles = array(); |
|
2676 |
||
2677 |
// Build an array of styles that have a path defined. |
|
2678 |
foreach ( $wp_styles->queue as $handle ) { |
|
2679 |
if ( wp_styles()->get_data( $handle, 'path' ) && file_exists( $wp_styles->registered[ $handle ]->extra['path'] ) ) { |
|
2680 |
$styles[] = array( |
|
2681 |
'handle' => $handle, |
|
2682 |
'path' => $wp_styles->registered[ $handle ]->extra['path'], |
|
2683 |
'size' => filesize( $wp_styles->registered[ $handle ]->extra['path'] ), |
|
2684 |
); |
|
2685 |
} |
|
2686 |
} |
|
2687 |
||
2688 |
if ( ! empty( $styles ) ) { |
|
2689 |
// Reorder styles array based on size. |
|
2690 |
usort( |
|
2691 |
$styles, |
|
2692 |
function( $a, $b ) { |
|
2693 |
return ( $a['size'] <= $b['size'] ) ? -1 : 1; |
|
2694 |
} |
|
2695 |
); |
|
2696 |
||
2697 |
/* |
|
2698 |
* The total inlined size. |
|
2699 |
* |
|
2700 |
* On each iteration of the loop, if a style gets added inline the value of this var increases |
|
2701 |
* to reflect the total size of inlined styles. |
|
2702 |
*/ |
|
2703 |
$total_inline_size = 0; |
|
2704 |
||
2705 |
// Loop styles. |
|
2706 |
foreach ( $styles as $style ) { |
|
2707 |
||
2708 |
// Size check. Since styles are ordered by size, we can break the loop. |
|
2709 |
if ( $total_inline_size + $style['size'] > $total_inline_limit ) { |
|
2710 |
break; |
|
2711 |
} |
|
2712 |
||
2713 |
// Get the styles if we don't already have them. |
|
2714 |
$style['css'] = file_get_contents( $style['path'] ); |
|
2715 |
||
2716 |
// Set `src` to `false` and add styles inline. |
|
2717 |
$wp_styles->registered[ $style['handle'] ]->src = false; |
|
2718 |
if ( empty( $wp_styles->registered[ $style['handle'] ]->extra['after'] ) ) { |
|
2719 |
$wp_styles->registered[ $style['handle'] ]->extra['after'] = array(); |
|
2720 |
} |
|
2721 |
array_unshift( $wp_styles->registered[ $style['handle'] ]->extra['after'], $style['css'] ); |
|
2722 |
||
2723 |
// Add the styles size to the $total_inline_size var. |
|
2724 |
$total_inline_size += (int) $style['size']; |
|
2725 |
} |
|
2726 |
} |
|
2727 |
} |
|
2728 |
||
2729 |
/** |
|
2730 |
* Inject the block editor assets that need to be loaded into the editor's iframe as an inline script. |
|
2731 |
* |
|
2732 |
* @since 5.8.0 |
|
2733 |
*/ |
|
2734 |
function wp_add_iframed_editor_assets_html() { |
|
2735 |
if ( ! wp_should_load_block_editor_scripts_and_styles() ) { |
|
2736 |
return; |
|
2737 |
} |
|
2738 |
||
2739 |
$script_handles = array(); |
|
2740 |
$style_handles = array( |
|
2741 |
'wp-block-editor', |
|
2742 |
'wp-block-library', |
|
2743 |
'wp-block-library-theme', |
|
2744 |
'wp-edit-blocks', |
|
2745 |
); |
|
2746 |
||
2747 |
$block_registry = WP_Block_Type_Registry::get_instance(); |
|
2748 |
||
2749 |
foreach ( $block_registry->get_all_registered() as $block_type ) { |
|
2750 |
if ( ! empty( $block_type->style ) ) { |
|
2751 |
$style_handles[] = $block_type->style; |
|
2752 |
} |
|
2753 |
||
2754 |
if ( ! empty( $block_type->editor_style ) ) { |
|
2755 |
$style_handles[] = $block_type->editor_style; |
|
2756 |
} |
|
2757 |
||
2758 |
if ( ! empty( $block_type->script ) ) { |
|
2759 |
$script_handles[] = $block_type->script; |
|
2760 |
} |
|
2761 |
} |
|
2762 |
||
2763 |
$style_handles = array_unique( $style_handles ); |
|
2764 |
$done = wp_styles()->done; |
|
2765 |
||
2766 |
ob_start(); |
|
2767 |
||
2768 |
wp_styles()->done = array(); |
|
2769 |
wp_styles()->do_items( $style_handles ); |
|
2770 |
wp_styles()->done = $done; |
|
2771 |
||
2772 |
$styles = ob_get_clean(); |
|
2773 |
||
2774 |
$script_handles = array_unique( $script_handles ); |
|
2775 |
$done = wp_scripts()->done; |
|
2776 |
||
2777 |
ob_start(); |
|
2778 |
||
2779 |
wp_scripts()->done = array(); |
|
2780 |
wp_scripts()->do_items( $script_handles ); |
|
2781 |
wp_scripts()->done = $done; |
|
2782 |
||
2783 |
$scripts = ob_get_clean(); |
|
2784 |
||
2785 |
$editor_assets = wp_json_encode( |
|
2786 |
array( |
|
2787 |
'styles' => $styles, |
|
2788 |
'scripts' => $scripts, |
|
2789 |
) |
|
2790 |
); |
|
2791 |
||
2792 |
echo "<script>window.__editorAssets = $editor_assets</script>"; |
|
2793 |
} |