如何卸载新 WooCommerce 2.3.x 加载的 select2 脚本/样式?

2023-12-13

我们是主题开发人员,我们已经使用 select2 (http://select2.github.io/) 我们的 WordPress 主题中 HTML 中的 SELECT 框的脚本。 刚刚发布的新 WooCommerce 2.3.x 现在也使用 select2 脚本。但他们以多种不同的方式用自己的样式(最重要的是!重要标签)覆盖了它的样式。

我们不能用 !important 规则重新声明他们所有的 CSS 更改,这会造成很多我们不喜欢的 CSS 混乱。现在我们的 JS 脚本加载了 2 次,有时也会发生冲突(因为 woocommerce 加载自己的 select2 js)。

我的问题是在我们的主题功能中停用 woocommerce select2 CSS 和 JS 文件的最佳方法是什么?我们想要使用我们的脚本版本和样式文件(对于 woocommerce 也选择元素)。

我尝试使用 wp_dequeue_script、wp_deregister_script 和可用于样式的相同函数,但这没有帮助。正如我看到 woocommerce 在我们的主题已经初始化之后添加脚本/css,并且我们无法停用它。

Thanks.

这是在 /includes/class-wc-frontend-scripts.php 中加载的代码,我需要从主题函数中禁用它:

self::register_script( 'select2', $assets_path . 'js/select2/select2' . $suffix . '.js', array( 'jquery' ), '3.5.2' );
self::enqueue_script( 'select2' );
wp_enqueue_style( 'select2', $assets_path . 'css/select2.css' );

如何在主题功能中卸载此 CSS/JS 文件,而不更改原始 WooCommerce 文件?


我找到了一个解决方案:

add_action( 'wp_enqueue_scripts', 'mgt_dequeue_stylesandscripts', 100 );

function mgt_dequeue_stylesandscripts() {
    if ( class_exists( 'woocommerce' ) ) {
        wp_dequeue_style( 'select2' );
        wp_deregister_style( 'select2' );

        wp_dequeue_script( 'select2');
        wp_deregister_script('select2');

    } 
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何卸载新 WooCommerce 2.3.x 加载的 select2 脚本/样式? 的相关文章