CFCF Static Export ProDEMO

WordPress 插件:三级生成、多出口与版本升级

插件在链路里的位置

WordPress ──(插件)──> D1(结构化数据)
                    ├─> R2(静态单页 + 媒体)
                    └─> 其它托管(S3 / GitHub / Netlify / …)

插件负责三件事:生成、同步、发布。它不是 Worker 的一部分,而是"源站适配器"。

三级生成

单页 HTML 的生成按顺序降级:

一级:内部模板渲染

在 WP 进程内 load_template(),拿到主题渲染结果。最快、最贴近原主题。

有个坑:load_template() 是 require_once 语义,同一进程第二次渲染会得到空内容。插件用 get_included_files() 做了 guard。

二级:前台抓取

内部渲染失败时,模拟 HTTP 请求访问前台页面,把 HTML 抓下来。

CLI 环境下 home_url() 可能退化成 http://localhost,所以脚本支持 --site=<原站 URL> 在 wp-load 前补 $_SERVER。

三级:硬编码兜底

前两种都失败时,用一份极简模板保证"至少有一页",并记录日志。

多出口

除了 Cloudflare,还支持:

  • S3 兼容存储
  • GitHub / GitLab
  • Netlify / Vercel
  • FTP / WebDAV
  • 本地目录

出口是"能力"的组合:有的支持上传,有的支持删除,有的支持 D1。插件按能力分派,不假设每个目标都一样。

版本 2.5.0 的主要变化

  • 列表每页文章数可配置;
  • taxonomies 升级复合主键 (type, slug),修复同名分类/标签串数据;
  • 主题静态资源随 Worker 打包为 assets,边缘免费直出;
  • 清理死代码,新增 uninstall.php。

安装与升级

  1. 备份数据库;
  2. 停用旧版,覆盖插件目录;
  3. 启用后在设置页确认目标配置仍在;
  4. 如果表结构有变更,点一次「初始化 / 迁移」;
  5. 跑一遍「重建全部单页」。

插件不会自动改表结构,迁移需要手动触发,这是为了避免升级时静默改数据。

发表评论

邮箱不会被公开。带 * 的为必填项。