分类: Polylang
-
一份用于同步 Polylang 中英文标签的批处理脚本,长期存在 WordPress 后台标签总数与脚本读取结果不一致的问题。此前两次排查分别修复了 Polylang 翻译关系缓存残留和动态分页导致的数据集变化,但问题仍会复发。最终通过对比 WP-CLI 与直接 PHP 执行环境,确认根因是 get_terms() 命中了持久化的旧 WP_Term_Query 查询缓存。脚本在源标签查询中加入 ‘cache_results’ => false 后,终于从旧的 8915 个标签恢复为正确的 8928 个。本文记录完整排查过程,并总结多语言数据维护脚本在缓存、运行上下文、统计验证和幂等性方面的实践经验。
-
在 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 和旧全局样式对象缓存等问题的排查思路。
-
本文记录一次将 WordPress + Polylang 英文站从路径模式 /en/ 迁移到独立子域名 en.shuijingwanwq.com 的完整排查过程。迁移过程中并不是简单修改 Polylang URL 设置就结束了,而是连续遇到了 Polylang 保存失败、扩展插件 Fatal Error、W3 Total Cache 将英文子域名误判为 foreign domain 并 301 回主域名、Redis Object Cache 缓存旧语言配置等问题。最终通过修复 Polylang 扩展插件、添加 W3TC 兼容 mu-plugin、清理 Redis 对象缓存,并验证 html lang、canonical、hreflang 和 W3TC 页面缓存文件,完成了英文子域名的源站侧迁移。
-
这篇文章基于前一篇将 WordPress `/wp-content/uploads/` 媒体库资源迁移到 `media.shuijingwanwq.com + Cloudflare` 的实践,继续分析 EdgeOne 流量成本控制问题。通过 EdgeOne 指标发现,虽然 uploads 图片和附件已经从 EdgeOne 拆出,但 `www.shuijingwanwq.com/en/` 英文路径仍占今日 EdgeOne 流量约三分之一。文章进一步评估了页面缓存、Bot 流量、`/en/` 路径占比、Nginx 现有 301 规则冲突风险,以及将英文站迁移到 `en.shuijingwanwq.com + Cloudflare` 的收益与代价。最终结论是:英文站拆分到子域名有助于显著降低 EdgeOne 流量,但不能仓促执行,需要先确认 Polylang、多语言链接、canonical、hreflang、sitemap、Cloudflare 接入和 301 跳转规则,确保旧 `/en/*` 路径能够一次跳转到最终英文子域名地址。
-
本文记录了使用 Polylang 插件进行中英文标签同步时,批量翻译脚本出现间歇性计数不准确问题的排查与修复过程。问题源于处理过程中创建新标签导致动态分页查询获取错误数据。最终通过使用 Polylang API 提前获取静态 ID 列表并配合 array_chunk 进行分批处理,有效避免了数据库变动的影响,确保了脚本计数的准确性与执行的稳定性。
