搜索全站
multilingual 2 分钟阅读

多语言与缓存插件冲突:按语言缓存配置与排除

多语言站用页面缓存(WP Rocket/Swift)常出现"切语言还是旧语言"的冲突,讲清按语言分缓存、排除语言切换器与动态块的配置。

U
UFO_PF 2017-02-03 · 阅读 2 分钟
多语 MULTILINGUAL
阅读提示
本文约 583 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:切英文还是显示中文缓存

页面缓存把首屏 HTML 存成静态,多语言站若不分语言缓存,用户切英文却拿到中文缓存页。核心是”缓存键含语言维度”。

原理分析:冲突来源

缓存插件默认按 URL 缓存,而多语言常用”同 URL + 语言 Cookie/session”或”不同 URL”。前者必须让缓存键含语言标识;后者(子目录/子域名)URL 已区分,冲突少。动态部分(切换器、当前语言块)需排除或按语言。

保姆级实操

WP Rocket:对 WPML/Polylang 自动”按语言缓存”(不同 URL 模式天然分)。若用 Cookie 模式,确保缓存变体含语言:

// WP Rocket 按 Cookie 分变体(示意)
// 在缓存插件设置里把语言 Cookie 加入"缓存变体"

排除语言切换器(若在页脚动态)。清缓存后切语言测。

常见坑

  1. 缓存不分语言,串语言。
  2. 切换器被缓存,显示错。
  3. 案例:某站 Cookie 模式多语言,WP Rocket 没分变体,英文用户看中文缓存。加语言变体后正常。
  4. 清缓存不彻底,旧页残留。
  5. 对象缓存串语言,需按语言键。

总结

判断标准:缓存键含语言维度、动态切换器排除。行动清单:确认 URL/ Cookie 模式 → 开按语言缓存 → 排切换器 → 清缓存测。详见多语言站点与 CDN 缓存的适配。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。