分类: 博客系统
-
本文记录了一次 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 之后的 CDN 与缓存配置过程。前一篇文章已经解决了源站侧的 Polylang 多域名配置、W3 Total Cache Page Cache 兼容、Redis Object Cache 旧配置缓存等问题。本文重点处理 en.shuijingwanwq.com 接入 Cloudflare、启用 HTML 页面缓存、验证首页与文章页 MISS 到 HIT、确认登录用户 Cookie、REST API、登录页和后台入口不会被缓存,并最终通过 Nginx 将非 www 域名下的后台入口统一 301 到 www.shuijingwanwq.com。
-
本文记录一次将 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 核心升级失败的完整排查过程:在从 WordPress 7.0 升级到 7.0.1 时,后台反复出现 524 超时和“另一更新正在进行”的提示。通过检查 `core_updater.lock`、WordPress 当前版本、升级临时目录、文件权限以及 EdgeOne 转发状态,最终确认 WordPress 核心文件并未半升级,问题主要集中在经过 CDN 代理后的后台长请求超时。文章进一步总结出:前台页面适合继续走 EdgeOne 缓存,而 WordPress 后台更新、插件安装等维护操作,后续应考虑通过独立后台域名或源站直连方式处理,以避免 CDN 对后台长请求造成干扰。
-
这篇文章基于前一篇将 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/*` 路径能够一次跳转到最终英文子域名地址。
-
这篇文章记录了将 WordPress 历史图片资源迁移到 `media.shuijingwanwq.com` 后,EdgeOne 仍然持续出现 301 请求的排查过程。通过 EdgeOne 状态码分析、`curl` 验证、旧文章源码检查和 Better Search Replace dry run,最终确认问题并非 EdgeOne 回源异常,而是历史文章正文中仍然保存着迁移前的 `www.shuijingwanwq.com/wp-content/uploads/` 图片地址。文章详细记录了如何安全替换完整旧图片 URL、清理 W3 Total Cache 缓存,并说明为什么不应无脑替换所有 `/wp-content/uploads/` 相对路径,以避免破坏技术文章中的路径说明内容。
-
这篇文章记录了我在 WordPress 中重新安装并启用 Yoast SEO 免费版时遇到的一次旧文章打不开问题。表面上看,问题像是 Yoast SEO 与旧文章存在兼容性冲突;但通过 PHP-FPM 日志排查后发现,真正原因是 WPCode 中一个 PHP Snippet 重复声明了同一个函数,导致 Cannot redeclare custom_desc_and_ads_inserter() 致命错误。最终通过为自定义函数增加 function_exists() 防重复保护,恢复了 Yoast SEO、旧文章页面和底部推荐区块的正常运行。
-
在验证 AutoPoly 免费版与 Yandex 网页版的翻译质量后,我继续评估 AutoPoly Pro + OpenAI API 是否能替代目前的 ChatGPT Plus 手动重译流程。结果发现,真正的问题已经不只是翻译质量,而是包括 Gutenberg 区块保护、OpenAI 请求位置、阿里云服务器访问能力、API 账单支付方式等一整套落地问题。本文记录这次分析过程,以及我为什么暂时没有直接切换到 AutoPoly Pro + OpenAI API 主流程。
-
这篇文章记录了我对 AutoPoly 免费版、Yandex Translate 网页版以及 ChatGPT Plus 整篇翻译流程的一次对比验证。通过浏览器抓包可以确认,AutoPoly 免费版使用 Yandex 时,并不是将整篇 WordPress 文章一次性提交翻译,而是按段落、区块或文本片段分批请求 Yandex。这样虽然有利于保留 Gutenberg 结构、代码块和配置内容,但正文翻译容易缺少上下文,机器翻译感明显。相比之下,Yandex 网页版 Quick translation 的普通正文连贯性略好,但会把代码块和配置块也翻译掉,并且存在长文本限制。最终结论是:AutoPoly 更适合作为 Polylang 结构复制和低价值历史文章初稿工具,高价值英文技术博客仍应继续使用 ChatGPT Plus 整篇重译,后续更值得研究的是如何自动化现有 ChatGPT 翻译流程。
