8

I am managing this blog. As you can see, it loads both jquery.js?ver=1.12.4 and jquery-migrate.min.js?ver=1.4.1

Do I need both of them, or I can safely remove one of them? Isn't the jquery-migrate.min.js the newest version of jquery.js?

How do I know if I can remove one of them or not?

2 Answers 2

8

As stated in the official blog of jQuery. Note that WordPress is mentioned in the quote.

jQuery Migrate 1.4.1 released, and the path to jQuery 3.0

Version 1.4.1 of the jQuery Migrate plugin has been released. It has only a few changes but the most important of them fixes a problem with unquoted selectors that seems to be very common in some WordPress themes. In most cases Migrate can automatically fix this problem when it is used with jQuery 1.12.x or 2.2.x, although it may not be able to repair some complex selectors. The good news is that all the cases of unquoted selectors reported in WordPress themes appear to be fixable by this version of Migrate!

A quick answer to your question; yes you can remove the jQuery migration script and if you don't see any unwanted behavior after the removal of the script, then it's safe to say that you can completely remove the reference migration script.

Can be read in here

3
  • And is it normal than the blog is using jquery.js?ver=1.12.4 ? Shouldn't it use the newest 3.x? Only then I can safely remove jQuery Migrate?
    – Pikk
    Jul 5, 2017 at 18:12
  • jQuery version 1.12.4 ships with WordPress core by default. You can use the latest version of the script which is version 3, just make sure to call the deregister_script('jquery') and that includes the removal of the migration script, then again enqueue the latest version of the script to use.
    – Den Isahac
    Jul 5, 2017 at 18:22
  • Thank you. Removed migrate and taken jquery 3 from google. And it seems to be working fine
    – Pikk
    Jul 5, 2017 at 18:31
4

Yes you can remove JQuery Migrate to speed up the loading of your page on the client side.

What is jQuery Migrate?

The jQuery Migrate module (jquery-migrate.min.js) is a javascript library that allows you to preserve the compatibility of your jQuery code developed for versions of jQuery older than 1.9. JQuery Migrate also allows developers to detect deprecated code that is no longer supported by the latest jQuery libraries and to adapt it according to the newest versions of jQuery 1.9 and higher.

PHP code to disable jQuery Migrate in WordPress

This is the code I'm using for my clients and it is the right way to remove it properly on the client side without affecting any other components in the WordPress Dashboard. Grab this code and paste it in your functions.php file to remove the JQuery:

/**
 * Disable jQuery Migrate in WordPress.
 *
 * @author Guy Dumais.
 * @link https://en.guydumais.digital/disable-jquery-migrate-in-wordpress/
 */
add_filter( 'wp_default_scripts', $af = static function( &$scripts) {
    if(!is_admin()) {
        $scripts->remove( 'jquery');
        $scripts->add( 'jquery', false, array( 'jquery-core' ), '1.12.4' );
    }    
}, PHP_INT_MAX );
unset( $af );

Hope this helps!

1
  • Or you could just enque jquery-core which does not include jquery-migrate: wp_enqueue_script('jquery-core');
    – Toni Joe
    Nov 28, 2020 at 12:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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