WordPress.org

Make WordPress Core

Ticket #25017: 25017.1.diff

File 25017.1.diff, 3.2 KB (added by atimmer, 7 years ago)
  • src/wp-includes/functions.wp-scripts.php

     
    103103 * @see WP_Scripts::remove() For parameter information.
    104104 */
    105105function wp_deregister_script( $handle ) {
    106         global $wp_scripts;
     106        global $wp_scripts, $pagenow;
    107107        if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
    108108                if ( ! did_action( 'init' ) )
    109109                        _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
     
    111111                $wp_scripts = new WP_Scripts();
    112112        }
    113113
    114         // Do not allow accidental or negligent deregistering of critical scripts in the admin. Show minimal remorse if the correct hook is used.
    115         if ( is_admin() && 'admin_enqueue_scripts' !== current_filter() ) {
    116                 $no = array(
    117                         'jquery', 'jquery-core', 'jquery-migrate', 'jquery-ui-core', 'jquery-ui-accordion',
    118                         'jquery-ui-autocomplete', 'jquery-ui-button', 'jquery-ui-datepicker', 'jquery-ui-dialog',
    119                         'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-menu', 'jquery-ui-mouse',
    120                         'jquery-ui-position', 'jquery-ui-progressbar', 'jquery-ui-resizable', 'jquery-ui-selectable',
    121                         'jquery-ui-slider', 'jquery-ui-sortable', 'jquery-ui-spinner', 'jquery-ui-tabs',
    122                         'jquery-ui-tooltip', 'jquery-ui-widget',
    123                         'underscore', 'backbone',
    124                 );
     114        // Do not allow accidental or negligent deregistering of critical scripts in the admin or on the login page. Show minimal remorse if the correct hook is used.
     115        $no = array(
     116                'jquery', 'jquery-core', 'jquery-migrate', 'jquery-ui-core', 'jquery-ui-accordion',
     117                'jquery-ui-autocomplete', 'jquery-ui-button', 'jquery-ui-datepicker', 'jquery-ui-dialog',
     118                'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-menu', 'jquery-ui-mouse',
     119                'jquery-ui-position', 'jquery-ui-progressbar', 'jquery-ui-resizable', 'jquery-ui-selectable',
     120                'jquery-ui-slider', 'jquery-ui-sortable', 'jquery-ui-spinner', 'jquery-ui-tabs',
     121                'jquery-ui-tooltip', 'jquery-ui-widget',
     122                'underscore', 'backbone',
     123        );
    125124
    126                 if ( in_array( $handle, $no ) ) {
    127                         $message = sprintf( __( 'Do not deregister the %1$s script in the administration area. To target the frontend theme, use the %2$s hook.' ),
    128                                 "<code>$handle</code>", '<code>wp_enqueue_scripts</code>' );
    129                         _doing_it_wrong( __FUNCTION__, $message, '3.6' );
    130                         return;
    131                 }
     125        if ( is_admin() && 'admin_enqueue_scripts' !== current_filter() && in_array( $handle, $no ) ) {
     126                $message = sprintf( __( 'Do not deregister the %1$s script in the administration area. To target the frontend theme, use the %2$s hook.' ),
     127                        "<code>$handle</code>", '<code>wp_enqueue_scripts</code>' );
     128                _doing_it_wrong( __FUNCTION__, $message, '3.6' );
     129                return;
    132130        }
    133131
     132        if ( 'wp-login.php' === $pagenow && 'login_enqueue_scripts' !== current_filter() && in_array( $handle, $no ) ) {
     133                $message = sprintf( __( 'Do not deregister the %1$s script on the login page. To target the frontend theme, use the %2$s hook.' ),
     134                        "<code>$handle</code>", '<code>wp_enqueue_scripts</code>' );
     135                _doing_it_wrong( __FUNCTION__, $message, '3.7' );
     136                return;
     137        }
     138
    134139        $wp_scripts->remove( $handle );
    135140}
    136141