Make WordPress Core

Ticket #11526: 11526.diff

File 11526.diff, 9.3 KB (added by nacin, 12 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