发布到线上站点
在站点文件夹内,以 ${CLAUDE_PLUGIN_ROOT}/bin/wpsync 运行 wpsync。启动一个“发布”章节以及 ${CLAUDE_PLUGIN_ROOT}/skills/wp-dev/guiding.md 中的 发布清单,并按照其说明进行询问。
发布会替换整个线上站点(数据库和文件)为本地副本。线上站点的 wp-config.php、.htaccess 和主机添加的文件将被保留。自上次拉取以来用户在线上所做的编辑将丢失。
- Wordfence: 如果
wpsync status --json显示"wordfence": "back-on",请按照${CLAUDE_PLUGIN_ROOT}/skills/wp-dev/wordfence.md(“Before”)中的说明操作。它必须保持关闭状态,直到发布被确认或回滚;然后按照其“When wpsync is done”部分将其重新打开。 - 先提交。 wpsync 拒绝发布未提交的代码。如果
git status显示有更改,列出它们并询问:提交它们(推荐:你编写一条描述更改的消息),或停止(未发布任何内容)。 - 试运行:
wpsync push --dry-run。向开发者以表格形式显示其摘要:数据库大小、要上传和删除的文件、新增、移除或更新的插件,以及自上次拉取以来线上的任何更改(文章、页面、评论、新用户)。如果线上有更改,请询问,列出更改内容:“线上 <域名> 自上次拉取以来有更改,发布将清除这些更改。我们应该怎么做?”:先拉取它们(推荐:但拉取会替换本地内容,因此本地创建的内容需要重新制作),无论如何都发布(那些线上更改将丢失),或停止。 - 要求明确确认,并指名站点:“现在将本地副本发布到 <域名>?它将替换整个线上站点;在确认之前,您可以通过回滚撤销。”:发布 <域名>,或暂不。只有 发布 <域名> 才是肯定回答。
- 发布:
wpsync push,作为一个长时间任务(参考guiding.md)。它会在 macOS 对话框中显示相同的摘要,并且只有当开发者在对话框中输入线上域名时才会继续。告知开发者对话框即将出现,可能位于其他窗口后面,并且你无法应答。然后它将备份即将更改的内容到backups/,上传文件,交换所有内容,并检查关键页面。如果检查失败,它会自行恢复旧站点并通知你。 - 亲自检查线上站点: 在浏览器中打开主页和受更改影响的页面,并将它们指向给开发者。
- 线上站点会保留以前的版本,直到确认。询问“线上 <域名> 看起来怎么样?”:
- 看起来不错,暂时都保留(推荐):不进行任何进一步操作;撤销选项仍然可用。提醒他们以后可以说“确认”或“回滚”。
- 有问题,回滚:
wpsync rollback(macOS 对话框要求开发者确认)将恢复之前的线上站点。 - 一切正常,确认:
wpsync finalize(也需在 macOS 对话框中确认)删除服务器上保存的副本。之后,将无法再进行回滚;backups/中仍有一个本地副本。
在发布之前,wpsync 会重新检查其密钥是否仍然有效以及服务器是否有足够的空间(大约站点大小的两倍)。如果任一检查失败,报告所发现的问题并停止。