6

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?

3
  • Very bad idea. WordPress core needs jQuery. Jan 21, 2018 at 10:48
  • on which page do you want to disable jQuery ?
    – mmm
    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
    Jan 21, 2018 at 14:36

2 Answers 2

20

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.

0

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);
1
  • 1
    I assume that works OK but you'll run into the scenario where WP is writing scripts to the page, gets to jquery and discovers it can't satisfy all of its dependencies because it doesn't know what jquery-migrate is, which is a dependency of jquery. Which - at first glance - means it won't output jquery-core either, which I think we did still want. That's what swissspidy's more complicated code was fixing.
    – Rup
    Jun 17, 2021 at 16:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.