禁用jQuery javascript的Cloudflare Rocket Loader并使其首先加载

时间:2020-02-14 作者:NicoCaldo

我使用Cloudflare Rocket Loader在我的站点上加速Javascript。

问题是,它在加载jQuery本身之前加载某些需要jQuery的脚本,使它们无法正常工作。

尽快禁用Rocket Loader以添加特定脚本data-cfasync="false"<script src=""> 我想知道如何将其添加到jQuery脚本中,因为Wordpress并不是简单地通过脚本标记加载jQuery。

目前我的网站加载jquery-migrate.min.jsjquery.js

PS有一个类似的问题,但几乎是7年前的事了,所以现在可能已经过时了Cloudflare's Rocket Loader + Wordpress -> Ignore scripts?

1 个回复
最合适的回答,由SO网友:NicoCaldo 整理而成

WordPress使用加载jQuerywp_enqueue_script. 问题是Wordpress还使用以下代码来更改handle

public function localize( $handle, $object_name, $l10n ) {
    if ( \'jquery\' === $handle ) {
        $handle = \'jquery-core\';
    }
解决方法是使用函数

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 );

相关推荐

Wordress importing scripts

我对Wordpress主题开发相当陌生,我正在尝试使用最佳实践来构建我的代码。您认为导入javascript文件的更好选项是什么:选项1<script src=\"<?php bloginfo(\'template_url\'); ?>/js/anime.min.js\"></script 选项2 wp_enqueue_script(\'some_script(s)\'); 在装载时间方面?提前感谢!