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

标签: MU Plugin

  • 2026 年 8 月 6 日,我曾在 PHP 8.5 环境中排查 WordPress 插件兼容性问题,并向 PublishPress Series 官方 GitHub 仓库提交 Issue #1163,报告 SplObjectStorage::attach() 与 contains() 在 PHP 8.5 下产生 Deprecated 警告。升级至 PublishPress Series Free 3.1.3 后,我重新检查了这个问题:Issue 已由上游关闭,生产环境源码中的旧调用也已经全部替换为 offsetSet() 与 offsetExists(),实际运行测试得到 DEPRECATIONS: 0,确认旧问题已经解决。不过,这次升级又带来了一个新的 Gutenberg 保存异常:新发布的中文文章虽然仍然属于正确的系列,却不再自动获得 Series Part 编号,而对应 English 文章仍然正常。全站扫描最终发现 6 篇受影响中文文章。恢复正确编号后,全站缺失 Series Part 的文章重新归零。为了避免修改插件源码或降级版本,我增加了一个最小 MU Plugin,在 Gutenberg REST 保存完成后调用 PublishPress Series 自己的排序函数自动补齐编号。本文随后作为修复后的第一篇真实中文文章发布,并成功自动成为「WordPress 性能优…

  • 本文记录一次 WordPress 动态首页性能问题的完整排查与优化过程。绕过 EdgeOne、Cloudflare 和 W3 Total Cache 后,发现中文首页真实动态生成时间接近 19 秒。通过 PHP-FPM slowlog、MySQL EXPLAIN 与实际 SQL 基准测试,最终定位到 Post Views Counter 的热门文章排行榜查询:完整 wp_posts.* 参与 SUM、GROUP BY 和 ORDER BY,导致 MySQL 5.7 创建磁盘临时表。通过 MU Plugin 将查询改造成“轻量排名 + Top N 完整文章加载”的两阶段结构后,中文动态首页降至约 0.83~0.89 秒,英文首页稳定在约 0.87~0.96 秒,同时保持排行榜顺序、浏览量和 Polylang 语言过滤正确。

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

  • 收到包含 8 个中文文章 URL 的内容整改清单后,我没有直接删除 WordPress 文章,而是通过 MU Plugin 保留文章发布状态和系列标题,同时让指定中文页面真实返回 HTTP 404,并限制 REST API、RSS 与 Sitemap 继续输出正文。随后结合 W3 Total Cache、EdgeOne、Cloudflare 和 Polylang 完成缓存排查,最终仅下线清单中的中文文章,对应英文译文继续正常访问。

  • 在排查 SlyTranslate、GLM-5.2、Polylang、PublishPress Series 与 W3 Total Cache 之间的兼容问题时,传统的“生成命令—手动执行—复制结果—继续分析”方式逐渐变得低效,长时间会话也开始造成浏览器卡顿。本文结合真实的 WordPress 生产环境修复过程,记录如何将源码读取、Hook 定位、最小 Diff、PHP 测试、SHA256 校验、文件备份、原子部署、现有数据修复和回滚验证交给 Codex 执行,同时由人工控制修改范围、架构方向和生产风险。实践表明,Codex 适合承担已经明确的代码分析与部署任务,但是否修改某个插件、是否接受新方案、是否存在功能重复,仍需要人工判断。

  • 本文记录在 SlyTranslate + 智谱 GLM-5.2 一次性全文翻译方案基础上,继续优化 WordPress 技术文章英文质量的完整过程。通过关闭随机采样、修复标题与摘要未接收附加提示词的问题,并将标题、摘要、正文及目标语言规则内置到 MU Plugin,减少了后台重复配置。随后使用智谱官方 API 对深度思考与 GLM-4.7-FlashX 进行 A/B 测试,结果显示深度思考成本明显增加但质量提升不稳定,FlashX 虽然更快但准确性较低。最终确定以 GLM-5.2、关闭深度思考、关闭随机采样和内置多字段提示词作为当前稳定方案。

  • 在 WordPress、Polylang、W3 Total Cache、Redis 与多域名架构下,后台通过 admin 子域名发布文章或清理缓存后,www 与 en 前台仍可能读取旧的页面缓存和对象缓存。本文通过对比源站、CDN、WP_Query 与 Redis 缓存结果,定位到 W3TC 按 Host 隔离对象缓存的问题,并利用缓存组版本机制,配合自定义 MU Plugin,实现语言首页、文章查询缓存及 WPCode 配置缓存的跨域同步失效,同时保留中英文站必要的缓存隔离。

👨‍💻 个人品牌

王世强|PHP / Go 技术顾问

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

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

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

👉 关于我 & 合作

.env (14) add (16) AI 翻译 (30) Apache (13) Array (19) A Tour of Go (59) Cache (13) CentOS (23) ChatGPT (20) ChatGPT Plus (15) chrome (19) Cloudflare (29) Codex (20) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (15) delete (31) Docker (32) Dockerfile (15) EdgeOne (31) environment variable (19) error (24) file (15) filter (20) Git (27) GitHub (23) Gitlab (15) GLM-5.2 (26) Go (57) go-tour-i18n (14) Google AdSense (29) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (34) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (21) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (18) 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 (49) response (13) RESTful (27) RESTful API (23) Shell (13) Shopify (19) SlyTranslate (20) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) W3 Total Cache (35) Windows 10 (46) WireGuard (27) WordPress (126) WordPress 多语言 (13) WPCode (23) Wstunnel (14) Yii (40) Yii 2 (70) Yii 2.0 (51) 多语言翻译 (32) 技术博客 (15) 故障排查 (14) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 8 月
 12
3456789
10111213141516
17181920212223
24252627282930
31