在前面的文章中,我们探讨了由于引入fonts.googleapis.com字体而导致网页响应缓慢的解决方案。然而,在WordPress程序中,还存在一个潜在问题,即在script-loader.php文件中引入了Google的公共库。这些库主要是加载与Prototype和script.aculo.us相关的脚本,这些脚本通过ajax.googleapis.com加载。如果服务器位于国内,网络问题可能会导致加载缓慢或失败。因此,我们建议将这些googleapis.com的引用替换为国内高速CDN镜像,以提高页面的响应速度。
替换方法
替换方式通常有两种:
直接修改代码:直接在WordPress相关源文件中,将Google资源URL替换为国内镜像。(例如,使用阿里云、百度云等提供的GoogleAPI镜像)。
使用WordPress的过滤器:通过script_loader_src过滤器动态替换URL,这种方式避免了直接修改核心文件,推荐使用此方法以便于后续的升级。
以下是示例过滤器代码,可以将其添加到主题的functions.php文件中:
- add_filter('script_loader_src', 'replace_googleapis_cdn', 10, 2);
- function replace_googleapis_cdn($src, $handle) {
- // 替换 Google CDN 为国内镜像(示例镜像地址需根据实际可用服务调整)
- return str_replace('https://ajax.googleapis.com', 'https://ajax.loli.net', $src);
- }
注意事项
在进行替换之前,请确保所使用的国内CDN镜像提供对应的资源,并且版本一致,以避免出现兼容性问题,这里我还是使用了ajax.loli.net。
这样就完成了前端公共库的修改。
晋级
可能你会想到,字体和前端公共库都需要修改,那能不能一组代码包含了两个功能,这里给大家整合好了,代码如下:
- // 统一替换 Google 相关资源为 loli.net 镜像
- function replace_google_resources($src) {
- // 替换字体(fonts.googleapis.com → fonts.loli.net)
- $src = str_replace('fonts.googleapis.com', 'fonts.loli.net', $src);
- // 替换脚本(ajax.googleapis.com → ajax.loli.net)
- $src = str_replace('ajax.googleapis.com', 'ajax.loli.net', $src);
- return $src;
- }
- // 挂钩样式和脚本的过滤器
- add_filter('style_loader_src', 'replace_google_resources'); // 处理 CSS 中的资源
- add_filter('script_loader_src', 'replace_google_resources'); // 处理 JS 中的资源
优势说明
全面覆盖:同时覆盖 style_loader_src(样式)和 script_loader_src(脚本),确保字体和脚本的地址都能被替换。
精准替换:精确替换完整子域名(如 fonts. 和 ajax.),避免因域名结构变化导致替换错误。
集中管理:函数逻辑集中,便于后续维护(如需更换镜像,只需修改一处)