我有一个简单的问题:
如何更改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.jsexample.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.jsexample.com/wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.min.jsexample.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 (我将刹车其他功能);第二,我将在每次更新时放松更改。
任何帮助都将不胜感激。
发布于 2019-02-11 20:29:17
WC()->plugin_url()基本上是核心函数plugins_url()的包装器。对函数的返回值进行筛选。return apply_filters( 'plugins_url', $url, $path, $plugin );,因此您应该能够向这个钩子中添加一个过滤器,如果$plugin不是woocommerce,它将返回初始值,然后检查路径或URL是否指向要替换的脚本之一,并从那里发送适当的值。
https://wordpress.stackexchange.com/questions/328404
复制相似问题