删除jQuery迁移和使用依赖项

时间:2018-07-22 作者:Brett

我在我的排队脚本部分中设置了jQuery作为依赖项,例如:

wp_enqueue_script( \'jquery\' );
wp_enqueue_script( \'scripts\', get_template_directory_uri() . \'/js/scripts.min.js\', array( \'jquery\' ) );
现在,我想删除jquery迁移,但显然要保留jquery本身,所以我发现this answer 声明这样做:

add_filter( \'wp_default_scripts\', \'remove_jquery_migrate\' );

function remove_jquery_migrate( &$scripts){
    if(!is_admin()){
        $scripts->remove( \'jquery\');
        $scripts->add( \'jquery\', false, array( \'jquery-core\' ), \'1.2.1\' );
    }
}
首先,我认为我们已经删除了jQuery migrate here,所以不确定添加最新版本的注释需要什么:

1.2.1=jquery迁移的最新版本

其次,按照我设置排队脚本的方式,自从我现在删除了依赖项之后,这会对依赖项产生什么影响jQuery 并添加jquery-core?

有没有更好的方法来处理这个问题?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

第一部分

好,那么在你的主题/插件中你有:

wp_enqueue_script( \'jquery\' );
wp_enqueue_script( \'scripts\', get_template_directory_uri() . \'/js/scripts.min.js\', array( \'jquery\' ) );
第一行,排队jquery 没有必要-你把jquery 作为第二行中的依赖项,因此无论如何都会包含它。

这些行通知WP您要将给定文件排队为scripts 它需要用handle注册脚本jquery - 因此,它将在脚本之前自动排队。

第二部分

add_filter( \'wp_default_scripts\', \'remove_jquery_migrate\' );

function remove_jquery_migrate( &$scripts){
    if(!is_admin()){
        $scripts->remove( \'jquery\');
        $scripts->add( \'jquery\', false, array( \'jquery-core\' ), \'1.2.1\' );
    }
}
正如你在Plugin API/Action Reference, 这个钩子叫做相当早。。。Waaaaay之前wp_enqueue_scripts.

And what it really does?

它删除带有句柄的脚本jquery 从默认脚本,然后将其添加到不同的依赖项中(仅限jquery-core).

add 方法来自WP_Dependencies 类别:

WP_Dependencies::add( string $handle, string $src, array $deps = array(), string|bool|null $ver = false, mixed $args = null )
为什么是这个版本版本1.2.1 只是一个缓存助推器。WordPress不分析它。它用作?ver param,因此浏览器必须在版本更改时重新加载该文件。。。您可以在其中放入任何内容-当然,使用给定脚本的真实版本是一个好主意;)

结束

相关推荐

使用jQuery显示/隐藏DIV-不能在一个页面中工作

两天来我只和一件事斗争。。。但我只是放弃了!我已经做了一个JSFIDLE来检查它,可能是我的代码错了或其他什么。。但是该代码在JSFIDLE上运行良好,但在我的this页面(在另一个子页面上,该代码运行正常)上则不行。。。我使用WPJob Manager Resumes... 我按代码生成页面[简历]按插件WPBakery Page Builder 我将自定义JS添加到子页面。所有代码的工作方式都类似于:alert(“test”),但不适用于以下情况: <script> jQue