WordPress.org

Make WordPress Core

Ticket #11526: 11526.diff

File 11526.diff, 9.3 KB (added by nacin, 3 years ago)
  • wp-includes/functions.wp-scripts.php

     
    2424                $handles = false; 
    2525 
    2626        global $wp_scripts; 
    27         if ( !is_a($wp_scripts, 'WP_Scripts') ) { 
     27        if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { 
     28                if ( ! did_action( 'init' ) ) 
     29                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     30                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     31 
    2832                if ( !$handles ) 
    2933                        return array(); // No need to instantiate if nothing is there. 
    3034                else 
     
    4751 */ 
    4852function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_footer = false ) { 
    4953        global $wp_scripts; 
     54        if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { 
     55                if ( ! did_action( 'init' ) ) 
     56                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     57                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     58                $wp_scripts = new WP_Scripts(); 
     59        } 
    5060 
    51         wp_scripts_init(); 
    52  
    5361        $wp_scripts->add( $handle, $src, $deps, $ver ); 
    5462        if ( $in_footer ) 
    5563                $wp_scripts->add_data( $handle, 'group', 1 ); 
     
    7583 */ 
    7684function wp_localize_script( $handle, $name, $data ) { 
    7785        global $wp_scripts; 
     86        if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { 
     87                if ( ! did_action( 'init' ) ) 
     88                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     89                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     90                return false; 
     91        } 
    7892 
    79         wp_scripts_init(); 
    80  
    8193        return $wp_scripts->add_script_data( $handle, $name, $data ); 
    8294} 
    8395 
     
    89101 */ 
    90102function wp_deregister_script( $handle ) { 
    91103        global $wp_scripts; 
     104        if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { 
     105                if ( ! did_action( 'init' ) ) 
     106                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     107                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     108                $wp_scripts = new WP_Scripts(); 
     109        } 
    92110 
    93         wp_scripts_init(); 
    94  
    95111        $wp_scripts->remove( $handle ); 
    96112} 
    97113 
     
    105121 */ 
    106122function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) { 
    107123        global $wp_scripts; 
     124        if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { 
     125                if ( ! did_action( 'init' ) ) 
     126                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     127                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     128                $wp_scripts = new WP_Scripts(); 
     129        } 
    108130 
    109         wp_scripts_init(); 
    110  
    111131        if ( $src ) { 
    112132                $_handle = explode('?', $handle); 
    113133                $wp_scripts->add( $_handle[0], $src, $deps, $ver ); 
     
    125145 */ 
    126146function wp_dequeue_script( $handle ) { 
    127147        global $wp_scripts; 
     148        if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { 
     149                if ( ! did_action( 'init' ) ) 
     150                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     151                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     152                $wp_scripts = new WP_Scripts(); 
     153        } 
    128154 
    129         wp_scripts_init(); 
    130  
    131155        $wp_scripts->dequeue( $handle ); 
    132156} 
    133157 
     
    145169 */ 
    146170function wp_script_is( $handle, $list = 'queue' ) { 
    147171        global $wp_scripts; 
     172        if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { 
     173                if ( ! did_action( 'init' ) ) 
     174                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     175                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     176                $wp_scripts = new WP_Scripts(); 
     177        } 
    148178 
    149         wp_scripts_init(); 
    150  
    151179        $query = $wp_scripts->query( $handle, $list ); 
    152180 
    153181        if ( is_object( $query ) ) 
     
    155183 
    156184        return $query; 
    157185} 
    158  
    159 /** 
    160  * Initializes $wp_scripts global (if it hasn't already been initialized by a faulty plugin or theme). 
    161  * 
    162  * @since 3.3 
    163  */ 
    164 function wp_scripts_init() { 
    165         global $wp_scripts; 
    166         static $done = false; 
    167  
    168         if ( !$done && !is_a($wp_scripts, 'WP_Scripts') ) { 
    169                 if ( !did_action('after_setup_theme') ) // last action before init 
    170                         _doing_it_wrong( __FUNCTION__, __( '$wp_scripts should not be accessed before the "init" hook.' ), '3.3' ); 
    171  
    172                 $wp_scripts = new WP_Scripts(); 
    173                 $done = true; 
    174         } 
    175 } 
    176  
  • wp-includes/functions.wp-styles.php

     
    2323                $handles = false; 
    2424 
    2525        global $wp_styles; 
    26         if ( !is_a($wp_styles, 'WP_Styles') ) { 
     26        if ( ! is_a( $wp_styles, 'WP_Styles' ) ) { 
     27                if ( ! did_action( 'init' ) ) 
     28                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     29                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     30 
    2731                if ( !$handles ) 
    2832                        return array(); // No need to instantiate if nothing is there. 
    2933                else 
     
    4650 */ 
    4751function wp_add_inline_style( $handle, $data ) { 
    4852        global $wp_styles; 
    49         if ( !is_a($wp_styles, 'WP_Styles') ) 
    50                 return false; 
     53        if ( ! is_a( $wp_styles, 'WP_Styles' ) ) { 
     54                if ( ! did_action( 'init' ) ) 
     55                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     56                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     57                $wp_styles = new WP_Styles(); 
     58        } 
    5159 
    5260        return $wp_styles->add_inline_style( $handle, $data ); 
    5361} 
     
    7078 */ 
    7179function wp_register_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) { 
    7280        global $wp_styles; 
     81        if ( ! is_a( $wp_styles, 'WP_Styles' ) ) { 
     82                if ( ! did_action( 'init' ) ) 
     83                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     84                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     85                $wp_styles = new WP_Styles(); 
     86        } 
    7387 
    74         wp_styles_init(); 
    75  
    7688        $wp_styles->add( $handle, $src, $deps, $ver, $media ); 
    7789} 
    7890 
     
    8799 */ 
    88100function wp_deregister_style( $handle ) { 
    89101        global $wp_styles; 
     102        if ( ! is_a( $wp_styles, 'WP_Styles' ) ) { 
     103                if ( ! did_action( 'init' ) ) 
     104                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     105                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     106                $wp_styles = new WP_Styles(); 
     107        } 
    90108 
    91         wp_styles_init(); 
    92  
    93109        $wp_styles->remove( $handle ); 
    94110} 
    95111 
     
    114130 */ 
    115131function wp_enqueue_style( $handle, $src = false, $deps = array(), $ver = false, $media = 'all' ) { 
    116132        global $wp_styles; 
     133        if ( ! is_a( $wp_styles, 'WP_Styles' ) ) { 
     134                if ( ! did_action( 'init' ) ) 
     135                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     136                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     137                $wp_styles = new WP_Styles(); 
     138        } 
    117139 
    118         wp_styles_init(); 
    119  
    120140        if ( $src ) { 
    121141                $_handle = explode('?', $handle); 
    122142                $wp_styles->add( $_handle[0], $src, $deps, $ver, $media ); 
     
    132152 */ 
    133153function wp_dequeue_style( $handle ) { 
    134154        global $wp_styles; 
     155        if ( ! is_a( $wp_styles, 'WP_Styles' ) ) { 
     156                if ( ! did_action( 'init' ) ) 
     157                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     158                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     159                $wp_styles = new WP_Styles(); 
     160        } 
    135161 
    136         wp_styles_init(); 
    137  
    138162        $wp_styles->dequeue( $handle ); 
    139163} 
    140164 
     
    152176 */ 
    153177function wp_style_is( $handle, $list = 'queue' ) { 
    154178        global $wp_styles; 
     179        if ( ! is_a( $wp_styles, 'WP_Styles' ) ) { 
     180                if ( ! did_action( 'init' ) ) 
     181                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), 
     182                                '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>' ), '3.3' ); 
     183                $wp_styles = new WP_Styles(); 
     184        } 
    155185 
    156         wp_styles_init(); 
    157  
    158186        $query = $wp_styles->query( $handle, $list ); 
    159187 
    160188        if ( is_object( $query ) ) 
     
    162190 
    163191        return $query; 
    164192} 
    165  
    166 /** 
    167  * Initializes $wp_styles global (if it hasn't already been initialized by a faulty plugin or theme). 
    168  * 
    169  * @since 3.3 
    170  */ 
    171 function wp_styles_init() { 
    172         global $wp_styles; 
    173         static $done = false; 
    174  
    175         if ( !$done && !is_a($wp_styles, 'WP_Styles') ) { 
    176                 if ( !did_action('after_setup_theme') ) 
    177                         _doing_it_wrong( __FUNCTION__, __( '$wp_styles should not be accessed before the "init" hook.' ), '3.3' ); 
    178  
    179                 $wp_styles = new WP_Styles(); 
    180                 $done = true; 
    181         } 
    182 } 
    183