核心功能与用法
wp-to-static 是一款专为 WordPress 迁移设计的自动化技能,通过 SSH 连接到目标服务器,执行服务器端的 wget --mirror 抓取渲染后的完整 HTML,再通过 Rsync 同步到本地构建目录。其核心创新在于仅提取被引用的资源——通过解析所有 HTML 和 CSS 文件中的 src=、href=、url() 等引用路径,精准筛选出实际需要的文件,而非全盘复制 wp-content/uploads 等臃肿目录,通常可将 1.5GB+ 的网站压缩至约 25MB。
构建流程包含严格的 URL 修复(将绝对路径转为相对路径、处理 CSS 层级路径)、自托管 Google Fonts(下载字体文件并更新 @font-face 引用)、以及深度清理 WordPress 特征代码(移除 generator meta、EditURI、oEmbed、wp-json 等)。最终输出部署到 Cloudflare Pages,享受边缘 CDN 加速。
显著优点
- 极致安全:静态站点零攻击面,无 PHP/MySQL 漏洞风险
- 成本归零:Cloudflare Pages 免费额度充足,无服务器维护开销
- 性能飞跃:边缘节点全球分发,首屏加载时间大幅缩短
- 资源精简:智能提取算法避免冗余文件,构建产物极小
- 自动化闭环:从镜像抓取到域名生效全程无需人工干预
潜在局限与风险
- 动态功能丧失:表单提交、搜索、评论、会员系统等需寻找替代方案(如 Formspree、Disqus)或接受功能降级
- 更新流程变更:内容更新需重新运行完整流程,无法像原 WordPress 后台即时发布
- 环境依赖严格:需预先配置 SSH 密钥、GitHub CLI、Wrangler CLI,且要求服务器具备
wget - 路径解析复杂度:多层级嵌套的 CSS 路径计算若出现偏差,可能导致资源 404
- 大站点超时风险:
wget --mirror在页面极多的站点可能因超时或内存限制失败
适合人群
寻求降低托管成本、提升安全基线的运维人员与开发者
希望保留现有 WordPress 内容但不再维护 PHP 栈的站点所有者
需要为归档目的创建网站快照的合规团队
- 内容型博客、企业官网、作品集等只读场景
常规风险提醒
- SSH 私钥需
chmod 600权限,务必通过ssh-agent管理,禁止明文传递 - 首次连接必须人工验证主机密钥,技能强制启用
StrictHostKeyChecking,杜绝中间人攻击 - 所有凭据(密钥、Token)禁止回显、禁止入 Git,默认使用私有仓库
- 部署前强制本地验证(
python3 http.server),用户确认后方可上线 - 若原站点含隐私数据,静态化后仍需检查是否意外暴露于 HTML 注释或 JSON 中