Disable Cloudflare Rocket Loader for jQuery javascript and make it load first
-
21-04-2021 - |
Question
I use Cloudflare Rocket Loader to speed up Javascript on my site.
The problem is, it loads certain scripts that need jQuery before loading jQuery itself making them not working correctly.
As soon as it is possible to disable Rocket Loader for specific script adding data-cfasync="false"
to the <script src="">
I would like to know how can I add it to jQuery scripts as Wordpress doesn't simply load the jQuery via the script tag I guess.
At the moment my website loads jquery-migrate.min.js and jquery.js
PS there is a similar question but it's almost 7yrs ago so, it may be outdated at this point Cloudflare's Rocket Loader + Wordpress -> Ignore scripts?
Solution
jQuery is loaded by WordPress with wp_enqueue_script
. The problem is Wordpress also use the below code to change the handle
public function localize( $handle, $object_name, $l10n ) {
if ( 'jquery' === $handle ) {
$handle = 'jquery-core';
}
The solution is to use the function
function wpse_script_loader_tag( $tag, $handle ) {
if ( 'jquery-core' !== $handle ) {
return $tag;
}
return str_replace( ' src', ' data-cfasync="false" src', $tag );
}
add_filter( 'script_loader_tag', 'wpse_script_loader_tag', 10, 2 );