分类: W3 Total Cache
-
在为 WordPress 中英文归档页增加 Adsterra Native Banner 时,前台始终无法及时显示最新模板内容。经过对 WPCode、PHP Snippet、Shortcode、Language Visibility、Block Template、CDN、W3 Total Cache Page Cache 与 Redis Object Cache 的逐层排查,最终确认 www 与 en 不同 Host 下的 W3TC Object Cache 保留了旧版 wp_template。分别清理两个域名上下文的 Object Cache,并重新生成对应 Page Cache 后,中英文广告均恢复正常。此次问题也暴露出现有多域名缓存同步机制对 wp_template 等结构性内容覆盖不足,下一步将重点完善已有 MU 插件,并继续处理首页最新文章仍停留在 7 月 28 日的问题。
-
在再次出现 CPU 告警后,我暂时停止继续追查瞬时负载根因,转而重新启用 W3 Total Cache 页面预缓存,并从 900 秒 × 5 页 的保守配置逐步优化。通过准确统计中英文 Yoast Sitemap,确认真正需要预缓存的页面为 6270 个,并自动生成 www + en 联合 W3TC 专用 Sitemap,每小时同步更新。最终将 W3TC Page Cache、EdgeOne 中文站和 Cloudflare 英文站的缓存生命周期统一调整为 96 小时,同时采用 300 秒 × 7 页 的低批量持续预热策略,在降低冷缓存回源和 PHP 动态生成压力的同时,避免预缓存本身制造新的 CPU 峰值。
-
在通过 EdgeOne 屏蔽异常 Sogou UA 流量、解决 WordPress 502 后,阿里云 ECS 仍然偶发 CPU 95%~100% 告警。进一步结合 PHP-FPM Slow Log、Nginx 请求日志和 W3 Total Cache 实测发现,大量带 Query String 的前台请求会导致 W3TC Disk: Enhanced 页面缓存无法复用,使请求重新进入 PHP-FPM,完整执行 Gutenberg、Polylang、Post Views Counter、Redis Object Cache 和数据库查询。正常 URL 第二次请求 TTFB 仅约 0.1 秒,而带参数 URL 每次仍需约 7~11 秒。最终决定不逐个封禁参数,也暂不升级服务器或修改 W3TC 内部逻辑,而是在 EdgeOne 与 Cloudflare CDN 层进行 Query String 缓存键和回源 URL 规范化,从根源减少动态参数造成的缓存穿透。
-
在 WordPress、Polylang、W3 Total Cache、Redis 与多域名架构下,后台通过 admin 子域名发布文章或清理缓存后,www 与 en 前台仍可能读取旧的页面缓存和对象缓存。本文通过对比源站、CDN、WP_Query 与 Redis 缓存结果,定位到 W3TC 按 Host 隔离对象缓存的问题,并利用缓存组版本机制,配合自定义 MU Plugin,实现语言首页、文章查询缓存及 WPCode 配置缓存的跨域同步失效,同时保留中英文站必要的缓存隔离。
-
近期博客先后启用了英文子域名、独立后台域名、多 CDN、W3 Total Cache Page Cache 与 Redis Object Cache,并针对 Polylang、W3TC、TMS Extensions for Polylang、SlyTranslate 等兼容问题增加了多项调整。随着缓存失效、语言识别和插件升级风险逐渐显现,本文暂停继续增加补丁,对现有多域名架构进行一次阶段性复盘,明确哪些组件继续保留、哪些第三方插件源码修改需要撤销,以及后续应按照“改动盘点、恢复 W3TC 缓存闭环、实现多语言一键清理、最后接入 EdgeOne 与 Cloudflare 自动刷新”的顺序推进,使整套方案重新变得可控、可维护并具备复用价值。
-
本文记录 WordPress + Polylang 英文站从 /en/ 迁移至独立子域名后,对首页和分类归档页错误链接的完整排查与修复过程。问题涉及分类下拉列表仍使用中文主域名、站点标题和面包屑 Home 指向默认语言首页、导航与侧栏保留旧 /en/ 链接,以及 W3 Total Cache Object Cache 导致英文 Host 无法及时加载最新 WPCode 片段。最终通过前端事件补丁、区块模板链接调整、按 Host 刷新对象缓存及源站验证,恢复英文站分类、导航、面包屑和多域名链接的正确跳转。
-
本文记录了 WordPress 英文站日历链接被错误拼接为双重 URL 的完整排查过程。问题最初源于旧版 WPCode 代码仍按 `/en/` 目录模式处理链接,在英文站迁移到 `en.shuijingwanwq.com` 后,将完整子域名 URL 再次拼接到旧地址后方。代码升级为兼容 Polylang 多域名模式的版本后,英文 Host 仍因 W3 Total Cache Object Cache 中的旧状态继续执行旧代码。最终通过按 `en.shuijingwanwq.com` Host 加载 WordPress 并调用 W3TC 对象缓存清理接口,使新版代码立即生效,日历链接恢复正常,并将清理流程整理为可重复使用的服务器脚本。
-
本文记录了一次 WordPress 英文文章页面横向滚动条的完整排查过程。在 Polylang 多域名、Twenty Twenty-Five 区块主题、W3 Total Cache Page Cache 与 W3TC Object Cache(Redis 后端)的组合下,页头搜索框的 `min-width: 250px` 导致英文语言切换器被挤出父级 Flex 容器。将其修改为 `min-width: 0` 后,英文页面却仍然输出旧 CSS。进一步对比 Cloudflare、源站响应、数据库原始内容与 `get_post()` 返回值后确认:数据库中的 `wp_global_styles` 已经更新,但 W3TC Object Cache 仍在返回旧的文章对象。最终通过 `clean_post_cache()` 精确清理对应对象缓存后,新 CSS 正常生效,横向滚动条消失。本文同时结合此前 Polylang 英文子域名迁移经历,总结了 W3TC Page Cache 多域名识别、旧 Polylang option 和旧全局样式对象缓存等问题的排查思路。
-
本文记录了在 OneinStack 环境下排查 WordPress 与 W3 Total Cache 缓存未生效问题的全过程。针对响应头显示动态生成而插件显示已启用的矛盾,文章验证了 Redis 状态与 Nginx 配置,分析了 Disk: Enhanced 模式的依赖性及 Response Headers 的误读。作者最终修正了初始结论,确认在此环境下 W3 Total Cache Page Cache 默认生效,无需额外 Nginx 重写或配置,并通过关闭 Page Cache 保留 Redis Object Cache 优化了架构。
-
面对 WordPress 后台站点健康提示的页面缓存缺失与响应时间缓慢问题,文章记录了通过安装并配置 W3 Total Cache 插件来优化的全过程。经测试,最终选择磁盘增强模式作为页面缓存引擎,并结合 Redis 处理数据库与对象缓存,同时启用了图片延迟加载。配置完成后,验证了浏览量统计与评论功能的兼容性,成功消除了关键问题警告,显著降低了服务器响应时间。
