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

标签: Gutenberg

  • 使用 SlyTranslate + GLM-5.2 翻译 WordPress Gutenberg 文章时,遇到 A paragraph run did not contain a top-level paragraph. 错误。排查后确认,问题来自自定义 Paragraph Run parser 只能识别裸 ,无法兼容模型偶发返回的 或 。最终通过最小范围修改,在保留原有段落 merge/split 与 Gutenberg 结构保护能力的前提下完成修复,并通过自动测试和生产真实文章验证。

  • 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 历史文章摘要、旧代码格式、SyntaxHighlighter 短代码及中英文覆盖翻译之后,这一轮历史迁移终于正式收尾。最终 67 个固定批次、1281 篇历史文章全部完成,remaining=0、integrity=ok。为准备退役 SyntaxHighlighter Evolved,又重新同步并审计了 1438 篇中文已发布文章,最终只有 14 篇进入人工检查,真正需要迁移到 Code Pro 的文章不到 5 篇。审计工具、配置、测试和历史迁移状态也已完成 Git 收口,503 项测试通过。发布本文前,SyntaxHighlighter Evolved 已正式停用,插件文件暂时保留约 5 天,等待旧页面缓存自然退出后再彻底删除。

  • 在一篇包含大量 Gutenberg 段落、引用、列表、图片和 90 个 Code Block Pro 区块的超长文章中,我继续验证 WordPress 中文到英文整篇 AI 翻译流程。排查过程中先后发现受保护标记过多、普通段落边界过度保护、Plaintext Code Block Pro 内容字段被误判为结构变化,以及空白 freeform 导致 PARAGRAPH_RUN 结构签名漂移等问题。通过引入普通段落区域、区分内容字段与结构配置、修正最终 Gutenberg 结构签名后,受保护标记降至 506 个,最终仍以一次完整 GLM-5.2 请求成功生成英文译文,并通过 Gutenberg 编辑器实际验证。

  • 在 WordPress 后台使用 SlyTranslate + GLM-5.2 翻译技术文章时,一次看似普通的尾部 STRUCT Token 缺失,最终定位为两个 INLINE Token 为适应自然英文语序发生了合法换位。主校验允许这种变化,但 Tail Repair 仍要求完整 raw Token 序列保持原始前缀,导致安全的尾部结构修复被错误阻断。本文记录从 first_mismatch_index=814 定位真实差异、修正 Tail Repair 为 fixed Token 前缀判断、补充回归测试,到生产部署并验证同一文章最终翻译成功的完整过程。

  • 在 WordPress Twenty Twenty-Five 主题中,分类下拉列表原本会先访问 ?category_name=slug,再由 WordPress 跳转到最终分类固定链接。随着网站后续实施 Query String CDN 缓存归一化,这一中转机制产生了兼容问题。本文记录如何通过 WPCode、render_block_core/categories、WP_HTML_Tag_Processor 与 get_term_link(),为分类选项写入真实固定链接,并由 JavaScript 直接跳转;同时利用 WPCode 的 Frontend Conditional Logic,将执行范围限制在首页与归档页。等待缓存自然过期后,中文首页、中文归档页、英文首页及英文归档页四种场景全部验证通过,无需修改 EdgeOne 或 Cloudflare 的现有 Query String 规则。

  • 本文记录 WordPress 双语博客文章列表摘要显示优化的完整实践。针对 Gutenberg Post Excerpt 默认长度导致中文摘要过短、100 字仍会截断的问题,通过 WPCode 在首页、归档页和搜索结果页中将 excerptLength 提高至 500,并保留主题 100 作为后备值。经过一段时间真实运行与启停对照,最终确认中文首页、中文分类页及英文搜索页均可基本完整显示已有摘要,同时也复盘了多层缓存环境下容易误判代码是否生效的问题。

  • 在解决 WordPress 首页性能问题后,对当前服务器进行了完整配置审计,重点检查 Nginx、PHP-FPM、OPcache、Redis、W3 Total Cache、阿里云 RDS/MySQL 以及 WordPress 应用层。最终将 PHP-FPM 最大工作进程从 10 提高到 14,调整 OPcache 内存与 Interned Strings 配置,关闭 Gutenberg 实时协作,并为 SlyTranslate 调试日志增加日志轮转;同时保留大量已经运行健康的参数不变,形成一套更适合当前网站长期运行的服务器配置基线。

  • 记录一次 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 整篇翻译。

  • 在完成 Gutenberg + SyntaxHighlighter 历史文章迁移后,我继续处理 Mixed Gutenberg / Classic + SyntaxHighlighter 文章,并整理出每天固定处理 20 篇的完整 SOP。流程包括 Classic 内容规范化为 Gutenberg、SyntaxHighlighter 转 Code Block Pro、代码语言核对、生产只读验证、中文摘要生成和英文覆盖翻译。经过连续两批共 40 篇真实文章验证,流程同时覆盖了 SSH 超时有限重试、翻译失败单篇 resume,以及 selected_count=0 但批次仍未完成等异常情况,最终形成一套可以长期重复执行的历史文章迁移方案。

👨‍💻 个人品牌

王世强|PHP / Go 技术顾问

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

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

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

👉 关于我 & 合作

.env (14) add (16) AI 翻译 (30) Apache (13) Array (19) A Tour of Go (67) Cache (13) CentOS (23) ChatGPT (20) ChatGPT Plus (15) chrome (19) Cloudflare (33) Codex (22) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (32) Dockerfile (15) EdgeOne (33) environment variable (19) error (24) file (15) filter (20) Git (27) GitHub (23) Gitlab (15) GLM-5.2 (26) Go (61) 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 (22) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (19) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (58) postman (18) Query (17) queue (16) Rancher (24) Redis (50) RESTful (27) RESTful API (23) Shopify (19) SlyTranslate (20) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) W3 Total Cache (38) Windows 10 (46) WireGuard (28) WordPress (132) WordPress 多语言 (13) WPCode (23) Wstunnel (15) Yii (40) Yii 2 (70) Yii 2.0 (51) ZgoCloud (13) 多语言网站 (13) 多语言翻译 (35) 技术博客 (15) 故障排查 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 9 月
 123456
78910111213
14151617181920
21222324252627
282930