我想向 WooCommerce 插件放置的脚本添加数据属性。这是脚本:
woocommerce/assets/js/select2/select2.min.js
因为我们将 Cookiebot 设置为自动,所以如果 Cookie 被拒绝,则不会加载此脚本。这会导致我们的结账出现问题,如果我们忽略该脚本就可以解决。
是否可以通过函数将此属性添加到该脚本中?
data-cookieconsent="ignore"
这应该可以解决问题,但我不知道是否可以通过函数或其他方式来完成。
如果此脚本已在 Wordpress 脚本队列中注册,您可以使用过滤器挂钩
[script_loader_tag][1]
更改用于将其加载到页面上的实际 HTML 脚本标记。以下是如何使用此过滤器的快速示例:
add_filter('script_loader_tag', function($tag, $handle, $src){
if($handle == '[*** SCRIPT_TAG_NAME ***]'){
return str_replace('src', 'data-cookieconsent="ignore" src', $tag);
}
})
来自 Wordpress 文档:
过滤排队脚本的 HTML 脚本标签。
这是如何工作的
此过滤器挂钩提供对 Wordpress 功能的访问,该功能构建负责在前端加载外部脚本的 HTML 脚本标记。
$handle
变量代表脚本队列中脚本的标识符字符串(您需要找到代表要编辑的WC脚本的句柄)。
$tag
变量包含字符串格式的脚本标记的实际 HTML 代码。
该钩子要求您返回修改后的
$tag
变量。
解决方案
添加数据属性实际上非常简单。只需对
$tag
变量执行“查找/替换”即可将该属性插入到“src”属性之前。然后返回修改后的字符串即可。
希望这有帮助。