aboutsummaryrefslogtreecommitdiff
path: root/srcs/wordpress/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-07 13:06:14 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-07 13:06:14 +0100
commit7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8 (patch)
treef7453d7dd5cbaaab246e23810b02d3edf1e451be /srcs/wordpress/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php
parentc59bdcf77c50cbe89b4a93782cdd6d9e7532080e (diff)
downloadft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.gz
ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.bz2
ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.zip
Added wordpress
Diffstat (limited to 'srcs/wordpress/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php')
-rw-r--r--srcs/wordpress/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php47
1 files changed, 47 insertions, 0 deletions
diff --git a/srcs/wordpress/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php b/srcs/wordpress/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php
new file mode 100644
index 0000000..a8af12f
--- /dev/null
+++ b/srcs/wordpress/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Javascript Loader Class
+ *
+ * Allow `async` and `defer` while enqueuing Javascript.
+ *
+ * Based on a solution in WP Rig.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twenty
+ * @since 1.0.0
+ */
+
+if ( ! class_exists( 'TwentyTwenty_Script_Loader' ) ) {
+ /**
+ * A class that provides a way to add `async` or `defer` attributes to scripts.
+ */
+ class TwentyTwenty_Script_Loader {
+
+ /**
+ * Adds async/defer attributes to enqueued / registered scripts.
+ *
+ * If #12009 lands in WordPress, this function can no-op since it would be handled in core.
+ *
+ * @link https://core.trac.wordpress.org/ticket/12009
+ *
+ * @param string $tag The script tag.
+ * @param string $handle The script handle.
+ * @return string Script HTML string.
+ */
+ public function filter_script_loader_tag( $tag, $handle ) {
+ foreach ( [ 'async', 'defer' ] as $attr ) {
+ if ( ! wp_scripts()->get_data( $handle, $attr ) ) {
+ continue;
+ }
+ // Prevent adding attribute when already added in #12009.
+ if ( ! preg_match( ":\s$attr(=|>|\s):", $tag ) ) {
+ $tag = preg_replace( ':(?=></script>):', " $attr", $tag, 1 );
+ }
+ // Only allow async or defer, not both.
+ break;
+ }
+ return $tag;
+ }
+
+ }
+}