admin管理员组

文章数量:1290176

WordPress loads jQuery.migrate automatically:

How can I disable it without plugins? I didn't find code in functions.php with enqueue.

It loads from /wp-includes. How can I disable it?

WordPress loads jQuery.migrate automatically:

How can I disable it without plugins? I didn't find code in functions.php with enqueue.

It loads from /wp-includes. How can I disable it?

Share Improve this question edited Apr 25, 2018 at 12:29 Ciprian 8812 gold badges11 silver badges27 bronze badges asked Jan 21, 2018 at 10:44 ნიკა ხაჩიძენიკა ხაჩიძე 891 gold badge3 silver badges7 bronze badges 3
  • Very bad idea. WordPress core needs jQuery. – Frank P. Walentynowicz Commented Jan 21, 2018 at 10:48
  • on which page do you want to disable jQuery ? – mmm Commented Jan 21, 2018 at 10:49
  • 2 @FrankP.Walentynowicz jQuery Migrate is not the whole of jQuery. It's a migration script that's not nested most times. – swissspidy Commented Jan 21, 2018 at 14:36
Add a comment  | 

2 Answers 2

Reset to default 26

jQuery Migrate is nothing but a dependency of the jQuery script in WordPress, so one can simply remove that dependency.

The code for that is pretty straightforward:

function dequeue_jquery_migrate( $scripts ) {
    if ( ! is_admin() && ! empty( $scripts->registered['jquery'] ) ) {
        $scripts->registered['jquery']->deps = array_diff(
            $scripts->registered['jquery']->deps,
            [ 'jquery-migrate' ]
        );
    }
}
add_action( 'wp_default_scripts', 'dequeue_jquery_migrate' );

This will prevent the jQuery Migrate script from being loaded on the front end while keeping the jQuery script itself intact. It's still being loaded in the admin to not break anything there.

In case you don't want to put this in your own plugin or theme, you can use a plugin like jQuery Light that does this for you.

Wordpress supports "deregistering" a plugin, using a similar process as mentioned by @swissspidy, but with less code.

In whatever function you're enqueuing your plugins, add this line:

wp_deregister_script('jquery-migrate');

This assumes that jQuery Migrate is enqueued with the handle jquery-migrate, which is its Wordpress default.

So here's an example of my Enqueue function with WP action:

function my_theme_enqueue_styles_and_scripts() {
    wp_enqueue_style('my-theme-styles', 'dist/styles.css');

    wp_deregister_script('jquery-migrate');
    wp_enqueue_script('my-theme-scripts', 'dist/scripts.js');

}
add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles_and_scripts', 99);

本文标签: phpHow to stop jQuerymigrate manually