【问题标题】:Remove of defer plugin related stylesheets删除延迟插件相关的样式表
【发布时间】:2021-11-10 21:17:43
【问题描述】:

我有一个使用WooCommerceWPBakery 运行的网站。

我正在尝试减少 Page Speed Insights 突出显示的未使用的 CSS 请求。

目前,这两个插件生成的 CSS 文件如下:

<link rel="stylesheet" id="wc-blocks-vendors-style-css" href="http://theme.test/wp-content/plugins/woocommerce/packages/woocommerce-blocks/build/wc-blocks-vendors-style.css?ver=1629402699" type="text/css" media="all">

<link rel="stylesheet" id="wc-blocks-style-css" href="http://theme.test/wp-content/plugins/woocommerce/packages/woocommerce-blocks/build/wc-blocks-style.css?ver=1629402699" type="text/css" media="all">

<link rel="stylesheet" id="js_composer_front-css" href="http://theme.test/wp-content/plugins/js_composer/assets/css/js_composer.min.css?ver=6.7.0" type="text/css" media="all">

我正在寻找:

  1. 取消注册这些样式表(如下所示)。
  2. defer 所有这三个样式表

我尝试了以下方法:

function remove_plugin_styles() {
  wp_deregister_style( 'wc-blocks-style' );  // woocommerce
  wp_deregister_style( 'wc-blocks-vendors-style-css' ); // woocommerce
  wp_deregister_style( 'js_composer_front-css' ); // js composer (wpbakery)
}
add_action( 'wp_enqueue_scripts', 'remove_plugin_styles', 100 );

用上面的wc-blocks-stylewc-blocks-vendors-style-css 都成功删除了。但是,js_composer_front-css 仍在加载中。

有没有办法 defer 所有这些工作表(以及任何其他与插件相关的 css 文件),或者删除它们?

【问题讨论】:

    标签: php html wordpress woocommerce


    【解决方案1】:

    defer(和async,就此而言)专门用于&lt;script&gt;标签,不适用于&lt;link&gt; stylesheets,因此您不能真正推迟传统意义上的它们。

    也就是说,您的问题是您试图注销错误的句柄。 -css 由 WordPress 自动附加到排队的 CSS 文件中。

    将最后一次注销更改为:

    wp_deregister_style( 'js_composer_front' ); // js composer (wpbakery)
    

    将正确注销它

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      相关资源
      最近更新 更多