没有不值得去解决的问题,也没有不值得去学习的技术!

标签: WordPress

  • 在将 WordPress 英文站从 /en/ 迁移到独立子域名后,我发现部分新发布的英文译文虽然已经与中文文章建立 Polylang 关联,但中文详情页仍然缺少语言切换器和 hreflang。排查确认,问题来自 W3 Total Cache Redis Object Cache 在多 Host 环境下缓存了旧的 post_translations_relationships 数据,随后 Page Cache 又继续保存错误 HTML。本文记录了 WP-CLI、真实 HTTP Runtime、精确 Object Cache 删除和 Page Cache 验证过程,并说明为什么最终暂时不引入复杂的跨 Host Redis 清理逻辑,而选择保持现有 TTL,让该低优先级问题自然恢复。

  • 将 WordPress 英文站从 /en/ 迁移到独立子域名后,我排查了 Polylang 多域名、独立后台 Host、W3 Total Cache Page Cache 与 Redis Object Cache 之间的缓存失效问题。最终确认并修复了英文文章更新后语言首页 Page Cache 未完整失效,以及 posts 对象缓存跨 Host 失效的问题,并将方案整理为 MIT 许可的独立 MU Plugin。真实后台 Update 验证后,Origin 层已能够正确返回最新内容,剩余问题进一步定位到 EdgeOne、Cloudflare 等 CDN 层。

  • 在为 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 日的问题。

  • 记录一次 SlyTranslate + GLM-5.2 整篇翻译中的 Protected Token 校验失败排查过程。问题最初表现为文章尾部连续丢失 Gutenberg STRUCT Token,在增加 Tail STRUCT Repair、强化 Prompt 和 Tail Guard 后仍未解决。进一步分析发现,真正原因是中文文章中存在 Paragraph → Plaintext → Paragraph 的跨块自然语言结构,GLM 为生成更自然的英文主动重组内容,导致 Protected Token 顺序漂移。最终通过清理不必要的 Plaintext、让 Gutenberg 区块边界与自然语言语义边界保持一致,在不放宽严格 Token 验证的情况下成功完成 GLM-5.2 整篇翻译。

  • 2026 年 7 月 28 日,英文站 en.shuijingwanwq.com 持续出现 Cloudflare 526 Invalid SSL certificate。排查发现,服务器同时保留了 RSA 与 ECC 两套 www.shuijingwanwq.com 的 acme.sh 证书记录:RSA 证书仅包含主域名和根域名,ECC 证书则额外包含英文子域 en.shuijingwanwq.com,但两套证书却共同写入同一组 Nginx 生产证书文件。当天凌晨旧 RSA 证书自动续期后覆盖了 ECC 证书,导致英文子域不再包含在 SAN 中,最终触发 Cloudflare Full (strict) 验证失败。通过恢复 ECC 三域名证书、移除旧 RSA 自动续期记录,并完成源站与 Cloudflare 公网验证后,英文站恢复 200,证书自动续期冲突也得到永久修复。

  • 在博客广告中偶然接触 Adsterra 后,我实际注册 Publisher 账号,为中文站和英文站分别创建 Native Banner,并通过 WPCode 按域名将广告插入文章末尾。首次上线时,Adsterra 的 invoke.js 持续返回 HTTP 403 Forbidden,但 WordPress、WPCode、W3 Total Cache 和页面 HTML 均已确认正常。第二天关闭本地 VPN 后,请求立即恢复为 HTTP 200,Native Banner 成功展示并产生第一批收入。本文完整记录从平台注册、双域名配置、WordPress 接入、403 排查,到 VPN 网络过滤、初始 CPM 和广告内容质量评估的全过程,并讨论一个广告平台是否值得长期保留,最终应由真实收益、维护成本和用户体验共同决定。

  • 本文记录一次 WordPress 双 CDN 架构下的 Query String 缓存优化实战。中文站通过 EdgeOne 自定义 Cache Key 与回源请求参数设置,让 canonical 文章 URL 的不同查询参数共用缓存,并在 MISS 回源时删除 Query String;英文站则通过 Cloudflare URL Rewrite Rule 实现相同目标。整个过程结合 HIT/MISS、Age、301、CF-Ray 与 Nginx access log 进行实际验证,最终将规则收敛为仅优化 /YYYY/MM/DD/ID/ 形式的标准文章 URL,在降低随机参数缓存穿透风险的同时保持 CDN 配置简单、清晰、易维护。

  • 在通过 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 502 故障排查结束后,我继续完善阿里云 ECS 的主机监控与报警体系。排查发现原有云监控 Agent 2.1.56 已停止运行,导致 CPU、内存、磁盘等操作系统级指标长期没有数据。随后通过传统云监控「主机监控」将 Agent 升级至 4.0.0,恢复 CPU、内存、Load、磁盘、网络和公网带宽等监控,并分别为 CPU、内存、磁盘及公网流出带宽设置 Info、Warn、Critical 三级报警。结合恢复后的实际监控数据,现阶段 1 核 2G ECS 与 2 Mbps 公网带宽仍有明显余量,因此暂不升级服务器,而是先通过持续监控积累长期运行基线,让服务器运维从“故障后排查”转向“异常前预警”。

  • 在 WordPress 历史文章迁移过程中,将原有流程图内容转换为 MerPress Mermaid 区块后,前台出现 Syntax error in text,并显示 Mermaid 11.9.0。最初将错误的 流程图 TD 修改为 flowchart TD 后问题仍未解决,最终发现关键在于节点文本写法。将 A[节点文本] 统一调整为 A[“节点文本”] 后,包含 test()、main()、go test() 以及中英文混合内容的流程图恢复正常渲染。本文记录完整排查过程,并总结适用于 WordPress 历史内容迁移的 Mermaid 节点编写与验收规则。


👨‍💻 个人品牌

王世强|PHP / Go 技术顾问

15+ 年 Web 后端开发经验,专注于系统维护、架构优化、性能调优及 Linux 运维。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

为创业团队、中小企业及独立开发者提供长期技术支持与远程合作服务。

👉 关于我 & 合作

.env (14) 404 (13) add (16) Apache (13) Array (19) Cache (13) CentOS (23) chrome (19) Cloudflare (24) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (15) delete (31) Docker (32) Dockerfile (15) ECS (12) EdgeOne (20) environment variable (19) error (24) Failed (13) file (15) filter (20) FORMAT (12) function (13) Git (27) GitHub (17) Gitlab (15) Go (35) Google AdSense (20) GraphQL (24) GraphQL API (14) Gutenberg (27) http (21) https (21) Installation (12) Interface (19) Jenkins (12) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (19) Migrate (13) Module (17) Multilingual (12) MySQL (76) MySQL 5.7 (21) Nginx (54) Node.js (12) normalize.css (20) OKX (15) OneinStack (14) PHP (67) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (57) postman (18) Query (17) queue (16) Rancher (24) Redis (45) response (13) RESTful (27) RESTful API (23) rules (12) Shell (13) Shopify (19) SlyTranslate (17) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (19) Ubuntu (39) update (20) VPN (17) W3 Total Cache (30) Windows 10 (46) WireGuard (26) WordPress (104) WordPress 多语言 (13) WPCode (20) Wstunnel (13) Yii (40) Yii 2 (70) Yii 2.0 (51) 命令行 (13) 技术博客 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 7 月
 12345
6789101112
13141516171819
20212223242526
2728293031