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

分类: 博客系统

  • 在修复 Yoast Sitemap 500 和 W3 Total Cache 联合预热 Sitemap 之后,继续检查发现 W3TC 的 w3_pgcache_prime 与 w3_pgcache_cleanup 定时任务仍然异常。通过创建随机 Cron Probe 复现问题,最终确认数据库中的 cron option 已更新,但普通 PHP 环境通过 get_option(“cron”) 读取到的仍是 Redis Object Cache 中陈旧的 alloptions。精准删除 options/alloptions 后,Cron 数据重新与数据库一致,Prime、Cleanup 以及 Linux crond 的生产执行链路均恢复正常。

  • 此前已经发现 W3 Total Cache 页面缓存长期很难看到超过 2 天的文件,但当时正在批量处理历史文章,不适合立即判断。等历史处理结束后,借这次 CPU 告警继续排查,最终发现联合预热 Sitemap 长期生成失败,根因是 Yoast SEO 生成 post-sitemap.xml 时触发 PHP 256M 内存耗尽并返回 HTTP 500。将 PHP-FPM memory_limit 提升到 512M 后,中英文 Sitemap 恢复 200,联合预热 Sitemap 也恢复自动更新。

  • 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 生产站的站点健康状态。最初后台显示 6 个“推荐的改进”,包括未启用的插件、未启用的主题、陈旧的 SQL 服务器、公开可访问的调试日志、评论分页,以及固定链接中没有文章名。排查过程中删除了 5 个不再使用的旧主题和 12 个已经没有实际用途的插件,升级 Akismet,关闭 WordPress 调试日志,并结合当前页面缓存与 CDN 架构,最终决定关闭文章评论及 Pingback/Trackback,同时保留历史评论数据。处理完成后,站点健康推荐项由 6 个减少到 3 个;剩余项目则分别因为 Cloudflare 插件暂时保留、阿里云 RDS MySQL 5.7 暂时无法升级,以及现有固定链接结构不适合为消除提示而贸然修改,因此选择保持现状。

  • 在 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 生产站点根目录清理实战。从 SSH 终端误粘贴产生的 0 字节命令碎片入手,逐步排查 WordPress 核心空文件、历史临时文件、旧主题与插件、PHP 维护脚本、Nginx/W3 Total Cache 配置、搜索引擎验证文件以及多年遗留的安装包。通过源码校验、旧博客溯源、当前配置核对和隔离机制,最终清理无用文件,同时避免误删仍在使用的标签处理脚本、AdSense、IndexNow 和搜索引擎验证文件,并总结生产环境下“先确认用途、优先隔离、最后删除”的安全清理思路。

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

  • 本文记录一次 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 语言过滤正确。

👨‍💻 个人品牌

王世强|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 (57) postman (18) Query (17) queue (16) Rancher (24) Redis (50) response (13) 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 (37) Windows 10 (46) WireGuard (28) WordPress (131) WordPress 多语言 (13) WPCode (23) Wstunnel (15) Yii (40) Yii 2 (70) Yii 2.0 (51) ZgoCloud (13) 多语言翻译 (35) 技术博客 (15) 故障排查 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 9 月
 123456
78910111213
14151617181920
21222324252627
282930