如何手动停止jQuery.Migrate

时间:2018-01-21 作者:ნიკა ხაჩიძე

WordPress加载jQuery。自动迁移:

如果没有插件,我如何禁用它?我在函数中找不到代码。php与enqueue.

它加载自/wp-includes. 如何禁用它?

2 个回复
SO网友:swissspidy

jQuery迁移只是WordPress中jQuery脚本的一个依赖项,所以可以简单地删除该依赖项。

代码非常简单:

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\' );
这将防止jQuery迁移脚本加载到前端,同时保持jQuery脚本本身的完整性。它仍在加载到管理中,以确保不会破坏那里的任何内容。

如果你不想把它放在你自己的插件或主题中,你可以使用如下插件jQuery Light 这就是为你做的。

SO网友:mediocre_bro

Wordpress支持;“注销”;一个插件,使用@swissspidy提到的类似过程,但代码较少。

在插件排队的任何函数中,添加以下行:

wp_deregister_script(\'jquery-migrate\');
这假设jQuery Migrate与句柄一起排队jquery-migrate, 这是Wordpress的默认设置。

下面是一个带有WP操作的排队函数示例:

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

结束