WooCommerce或任何其他插件:通过CDN交付JS和CSS,无需使用插件

时间:2019-02-11 作者:manifestor

我有一个直截了当的问题:

如何更改WooCommerce(或任何其他插件)提供的JS和CSS资产的链接(基本URL)以使用CDN?

我唯一的要求是:

我不想使用任何插件wp-content/plugins 因为这将被下一次更新覆盖WP_PLUGIN_DIR 或WP_PLUGIN_URL, 因为其他插件和插件组件依赖于此路径,我不想/无法将整个插件代码上载到CDN(如果我有任何错误,请纠正我)

  • example.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js
  • example.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js\'
  • example.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js\'
  • example.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js
  • example.com/wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.min.js
  • example.com/wp-content/plugins/woo-poly-integration/public/js/Cart.min.js
我检查了插件代码,他们注册了如下资产:

wp_register_script( \'jquery-blockui\', WC()->plugin_url() . 
\'/assets/js/jquery-blockui/jquery.blockUI\' . $suffix .
\'.js\', array( \'jquery\' ), \'2.70\', true );
当然,我可以改变plugin_url() 功能,但这有两个缺点:第一,其他组件依赖于plugin_url (我会停止其他功能)其次,我会随着每个新的更新而放松更改。

任何帮助都将不胜感激。

1 个回复
SO网友:mrben522

WC()->plugin_url() 基本上是核心函数的包装器plugins_url(). 过滤函数返回值。return apply_filters( \'plugins_url\', $url, $path, $plugin ); 因此,您应该能够向挂钩添加一个过滤器,该过滤器返回初始值,如果$plugin 不是woocommerce,然后检查路径或URL是否指向要替换的脚本之一,并从那里发送相应的值。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。