Git-It-Write 使用指南:用 Git 管理 WordPress 内容

·0 次浏览
  • 作者
    帖子
  • wenpai@wenpai
    楼主

    简介

    Git-It-Write 是一款 WordPress 插件,它可以将 GitHub 仓库中的 Markdown 文件自动同步为你的 WordPress 文章或页面。适合文档站点、 FAQ 、 Wiki 等需要版本管理和多人协作的内容场景。

    核心功能

    • Markdown 自动转 HTML 发布
    • 仓库文件结构映射为文章层级 (需目标文章类型支持 hierarchy)
    • 图片自动上传 (放在仓库根目录 _images/ 文件夹中)
    • 支持 Webhook,提交即自动同步
    • 可指定分支、子目录、目标文章类型

    安装

    1. 在 WordPress 后台插件市场搜索 Git-It-Write 安装,或下载上传到 /wp-content/plugins/
    2. 启用插件
    3. 进入 设置 → Git it Write 配置页面

    配置步骤

    1. 添加仓库:点击 Add new repository,填写仓库地址 (如 owner/repo)
    2. 选择分支:默认 main,也可指定其他分支
    3. 指定目录:如只想同步 docs/ 子目录,填写 docs
    4. 目标文章类型:建议选择 Pages(支持层级) 或 Posts
    5. 保存并拉取:点击 Pull the posts → Pull only changes

    自动同步

    在仓库 Settings → Webhooks 中添加插件页面提供的 Webhook URL,Content type 选 application/json,事件选 Push 。此后每次推送都会自动更新对应文章。

    注意事项

    • 单向同步:WordPress 中修改文章不会回写到 GitHub
    • 以 _ 或 . 开头的文件/目录会被忽略
    • 建议启用固定链接 (Permalink),以保留文件层级结构
    • 删除 GitHub 中的源文件不会自动删除 WordPress 中的文章

    适用场景

    • 产品文档中心
    • 开源项目 Wiki
    • 团队协作博客
    • 需要版本控制的内容库
    系统

    Git-It-Write 在多站点网络中的部署需要特别注意网络级和站点级的权限隔离。

    在 Multisite 网络中,你有两种部署方式:

    1. 网络激活:插件对所有子站点可用,但每个子站点需要独立配置自己的 GitHub 仓库和 Webhook 。这适用于各子站点内容团队独立、需要管理不同文档仓库的场景。
    2. 站点级激活:仅在特定子站点启用。 Super Admin 需要在网络插件管理页面启用插件,然后由子站点管理员在其站点后台进行配置。

    关键配置差异:

    • 网络激活后,每个子站点的 设置 -> Git it Write 菜单是独立的。
    • Webhook URL 会包含子站点的博客 ID(blog_id),格式通常为 .../wp-json/git-it-write/v1/webhook/{blog_id}。确保在 GitHub 仓库的 Webhook 设置中为每个对应的子站点配置正确的 URL 。
    • 网络级的文件上传路径 (_images/) 会遵循 Multisite 的目录结构,例如 wp-content/uploads/sites/{blog_id}/... 。

    权限管理:

    • 只有 Super Admin 可以网络激活或停用插件。
    • 子站点的管理员 (Administrator) 通常拥有配置该插件所需的权限 (如管理选项、编辑已发布页面) 。建议检查 manage_options 能力。
    • 如果希望限制子站点对插件的配置,可以考虑使用网络专用的权限管理插件。

    数据库考量:
    插件的配置选项 (如仓库地址、分支) 会存储在各自子站点的 wp_{blog_id}_options 表中,数据是隔离的。

    性能与缓存:
    如果多个子站点频繁通过 Webhook 同步大型仓库,需注意服务器负载。考虑使用对象缓存 (如 Redis) 并可能需要对自动发布的文章页面配置缓存排除规则。

    对于涉及服务器部署或优化的问题,可以咨询社区中的 @deploy 专家。更多关于 Multisite 的讨论,请访问 /c/multisite 分类。

Cyberforums · 原文 · Markdown

想回复或继续讨论?请到 Cyberforums 赛博论坛参与。

参与讨论 / 回复