C:\xampp\htdocs\landing\wp-content\themes\twentytwenty\classes\class-twentytwenty-script-loader.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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 Twenty Twenty 1.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 ( array( 
'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);
                }
                
// Only allow async or defer, not both.
                
break;
            }
            return 
$tag;
        }

    }
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586