You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优雅禁用WordPress站点Google Fonts调用以合规GDPR/TTDSG?

解决方案:在WordPress中拦截并替换Google Fonts调用(符合GDPR/TTDSG)

核心思路:全局拦截+URL重写

利用WordPress的钩子机制,在脚本/样式入队、页面输出等多个环节拦截Google Fonts相关请求,统一替换为合规源,无需逐个修改插件或主题文件。

1. 拦截入队脚本/样式中的Google Fonts URL

通过script_loader_src和style_loader_src钩子,对官方入队的脚本、样式URL做定向替换:

add_filter('script_loader_src', 'replace_google_fonts_url', 10, 2);
add_filter('style_loader_src', 'replace_google_fonts_url', 10, 2);

function replace_google_fonts_url($src, $handle) {
    // 替换字体API域名
    $src = str_replace('fonts.googleapis.com', 'gdprcompliantsource.fontapis.com', $src);
    $src = str_replace('fonts.gstatic.com', 'gdprcompliantsource.fontapis.com', $src);
    // 替换WebFont.js的Google源
    $src = str_replace('ajax.googleapis.com/ajax/libs/webfont/1/webfont.js', 'gdprcompliantsource.fontapis.com/webfont/1/webfont.js', $src);
    return $src;
}

2. 拦截页面硬编码的Google Fonts调用

部分主题/插件会直接在模板中写死字体链接或WebFont配置,通过输出缓冲机制全局替换:

add_action('template_redirect', 'buffer_google_fonts_replacement');

function buffer_google_fonts_replacement() {
    ob_start(function($buffer) {
        // 替换HTML中的字体链接
        $buffer = str_replace('fonts.googleapis.com', 'gdprcompliantsource.fontapis.com', $buffer);
        $buffer = str_replace('fonts.gstatic.com', 'gdprcompliantsource.fontapis.com', $buffer);
        // 清空WebFont.load和WebFontConfig中的Google配置
        $buffer = preg_replace('/WebFont\.load\(\{.*?google:.*?\}\)/s', 'WebFont.load({custom: {families: []}})', $buffer);
        $buffer = preg_replace('/WebFontConfig\s*=\s*\{\s*google:.*?\}/s', 'WebFontConfig = {}', $buffer);
        return $buffer;
    });
}

3. 强制取消已注册的Google Fonts队列

针对部分插件主动注册的Google Fonts资源,用高优先级钩子取消队列:

add_action('wp_enqueue_scripts', 'deregister_google_fonts', 999);

function deregister_google_fonts() {
    // 可根据实际情况添加需要取消的样式/脚本handle
    wp_deregister_style('google-fonts');
    wp_dequeue_style('google-fonts');
    wp_deregister_script('webfont');
    wp_dequeue_script('webfont');
}

注意事项

  • 所有代码直接添加到主题的functions.php文件即可,无需修改插件/主题核心文件(避免更新后失效)。
  • 确保gdprcompliantsource.fontapis.com提供与Google Fonts一致的字体资源,否则会导致字体加载异常。
  • 正则替换规则可根据实际页面中的硬编码写法调整,确保覆盖所有场景。

内容的提问来源于stack exchange,提问作者Dnz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:15:47