已更新 详情请看不依赖子比多平台文章同步v1.3.0 · 更新日志(有没有子比都能用)-zibll综合交流社区-zibll子比主题-zibll子比社区
子比多平台文章同步 · 完整介绍
插件名称:子比多平台文章同步(zibll-post-sync) 版本:1.0.0 作者:阿晨
插件是AI全权写的 个人感觉肥肠滴好用 所以直接分享出来了hh
本篇完整的插件介绍也是ai生成的,目前知道连通性测试是无法生效的,但是配置好之后文章可以正常同步~不影响正常使用喵~
演示图片



一、这是什么
子比多平台文章同步是一款用于在多个 WordPress 站点之间自动同步文章的插件。装上它之后,你在主站点发布或编辑一篇文章,改动会在第一时间自动推送到所有已配置的目标站点——不仅同步正文,连分类目录、标签、专题(zibll 的 topics)等分类法也一并同步,保证各站内容结构一致。
它采用「单插件双角色」设计:同一个插件装在每一个参与的站点上,通过后台「角色」切换,即可让它充当主站(推送方)或接收站(接收方),也可以双端并存。两端通过 WordPress 原生 REST 接口通信,并用 HMAC-SHA256 签名 + 时间戳做鉴权,密钥不随请求明文传递。
一句话总结:一处发布,多处同步;改了就同步,删了可选择同步。
二、能解决什么问题
|
场景 |
痛点 |
本插件怎么做 |
|---|---|---|
|
多站运营 |
同一篇文章要在好几个站手动发一遍 |
主站一发,其余站自动收到 |
|
内容维护 |
主站改了标题/正文/分类,其他站还是旧的 |
编辑即推送,接收站原地更新 |
|
站点矩阵 |
几十上百个站,人工同步不现实 |
支持任意数量目标站,批量推送 |
|
海量文章 |
十万级文章无法一次性同步 |
分批游标续传,可中途停止、断点重跑 |
|
安全风险 |
同步接口被人乱调 |
HMAC 签名 + 时间戳防重放 + 来源白名单 |
|
多主题环境 |
有的站装了子比,有的没装 |
自动降级兼容原生设置页,无子比也能用 |
三、核心功能特性
-
单插件双角色 每个站点都安装同一个插件,后台「本站角色」设为
主站点 / 接收站 / 双端即可。无需为不同角色装不同插件。 -
全自动实时同步 监听 WordPress
save_post钩子:发布、保存草稿、以及**任何编辑(含分类/标签/专题变更)**都会触发推送。 -
可选的删除同步 主站删除文章时,可配置是否同步删除其它站的对应文章。仅删除「同步来的文章」,绝不会误删对方站点的原创内容。
-
安全的通信鉴权
-
每个请求带
X-Zibll-Sync-Signature(HMAC-SHA256)与X-Zibll-Sync-Timestamp; -
接收端校验签名与时间戳(±300 秒有效,防重放攻击);
-
密钥只在两端本地保存,不随 HTTP 请求明文传输;
-
可选「来源白名单」,只允许指定主站地址推送。
-
-
分类法按 slug 映射 分类目录(
category)、标签(post_tag)、专题(topics)按 slug 在接收站创建或更新后挂载,保证多站分类结构一致(slug 不一致则新建,不会错挂)。 -
作者按邮箱映射 主站文章作者的邮箱随 payload 发送,接收站按邮箱匹配本地用户;匹配不到时回退到「默认作者」设置,避免文章变成「匿名」。
-
特色图自动搬运 主站特色图地址随文章发送,接收站自动下载并导入到自己的媒体库,再设为特色图。完美兼容对象存储插件(见下文「对象存储兼容性」)。
-
防回环(不会互相推送死循环) 接收端写入期间打「导入中」标记,且不会把「同步来的文章」反向推回主站。即便双端模式也不会无限循环。
-
去重更新(不会生成重复文章) 每篇同步来的文章都记录来源标识(主站地址 + 主站文章 ID)。下次再收到同一篇,接收端会原地更新而非新建——可放心重复触发同步、断点续跑,文章不会越同步越多。
-
手动分批同步(十万级友好) 提供「立即同步全部已发布文章」按钮,采用前端驱动的分批游标续传:每批默认 50 篇(可配 1–200),自动续下一批并显示进度条,可中途停止。
-
条件筛选同步 手动同步支持按分类 / 标签 / 专题 / 发布时间范围筛选后再分批推送,只同步你关心的那部分文章。
-
目标站连通性测试 一键「测试所有目标站连通性」,实时回报每个目标站是否可达、签名是否通过(返回具体 HTTP 状态便于排查)。
-
统一品牌后台菜单 所有「阿晨出品」的插件会自动归位到同一个顶级菜单 「Hoarfall 工具」 下,后台不再杂乱;插件列表页也带「设置」快捷跳转。
-
非子比主题兼容 若站点未启用子比主题(缺少 Codestar Framework),设置页会自动降级为原生 WordPress 设置页,设置界面始终可访问,配置数据与原 CSF 页面完全互通。
-
调试日志 可开启调试日志,记录推送成功/失败、目标站响应,便于排障。
四、工作原理
┌──────────────┐ ┌──────────────────┐
│ 主站点 │ save_post / 手动同步 │ 接收站 │
│ (推送方) │ ───────────────────────────▶ │ (接收方) │
│ │ POST /wp-json/ │ │
│ zibll_ps_ │ zibll-post-sync/v1/receive │ REST 路由校验: │
│ push_post │ 带 HMAC 签名+时间戳 │ ① 签名/时间 │
│ │ │ ② 来源白名单 │
│ 构建 payload │ │ ③ 查重(去重更新) │
│ + HMAC 签名 │ │ ④ 新建/更新文章 │
└──────────────┘ │ ⑤ 映射分类法 │
│ ⑥ 导入特色图 │
│ ⑦ 打来源 meta │
└──────────────────┘
-
推送端(
includes/sender.php):监听保存/删除钩子 → 对每一个目标站构建 payload → 用目标站密钥生成 HMAC 签名 →wp_remote_post到目标站的wp-json/zibll-post-sync/v1/receive。 -
接收端(
includes/receiver.php):注册 REST 路由 → 校验签名与时间戳 → 校验来源白名单 → 按来源标识查重 →wp_update_post/wp_insert_post→ 映射分类法 → 导入特色图 → 写入来源 meta(供去重与防回环)。
五、同步内容详解
会自动同步的字段
|
字段 |
说明 |
|---|---|
|
标题 |
文章标题 |
|
别名 |
URL slug |
|
正文 |
文章主体 |
|
摘要 |
摘要 |
|
发布状态 |
发布/草稿等 |
|
发布时间 |
保持与来源一致 |
|
评论/引用状态 |
comment_status / ping_status |
|
作者 |
按邮箱匹配,失败回退默认作者 |
|
特色图 |
URL + 标题 + alt + 描述,自动下载入库 |
|
分类法 |
分类目录 / 标签 / 专题(按 slug 创建或挂载) |
正文里内嵌的
<img>链接仍指向主站(通常为公开可读的对象存储地址),接收站可正常显示。
关于 SEO(重要且如实说明)
文章「本体」层面的 SEO 要素会同步:标题、URL slug、正文、摘要、分类标签、特色图(常作社交分享图)都会过去,接收站文章有完整的收录基础。
但 SEO 插件单独设置的专项 meta 当前版本(1.0.0)不自动同步,例如:
-
单独的 Meta 标题 / Meta 描述 / 焦点关键词(Yoast、Rank Math、AIOSEO 等存于
post_meta); -
noindex / nofollow 指令;
-
canonical 规范链接、结构化数据(schema)。
原因:这些字段各家插件 key 名不同,盲目全量同步既可能带过去不该带的字段,也要求接收站装同款 SEO 插件才能读取。
⚠️ 多站同步的 SEO 风险(重复内容):主站与接收站内容一致,搜索引擎可能判为重复内容、稀释权重。常见处理:
-
方案 A(镜像/备份用途):在接收站 SEO 插件中把「同步来的文章」设为
noindex,只给人看不收录; -
方案 B(也要收录):让接收站 SEO 插件把 canonical 指向主站原文,告诉搜索引擎「真正出处是主站」。
后续版本计划提供「SEO meta 白名单同步」(指定
_yoast_wpseo_/_rankmath_等前缀才复制)与「同步来的文章自动 noindex」开关。如需提前支持,可联系作者。
六、安装指南
-
下载插件,得到
zibll-post-sync/目录。 -
将整个目录上传到每一个参与站点的
wp-content/plugins/。 -
在 WordPress 后台「插件」中启用「子比多平台文章同步」。
-
启用后,进入 Hoarfall 工具 → 文章同步(或插件列表点「设置」)进行配置。
要求:主站与接收站均为 WordPress 5.8+ / PHP 7.4+。接收端依赖 WordPress REST,因此「其他网站」需同为 WordPress 站点。
七、配置指南
典型拓扑:1 个主站 + N 个接收站
主站点(角色 = 主站点)
-
启用「同步」开关。
-
在「目标站点」里逐个添加:
-
站点地址:接收站的完整 URL(如
https://www.example.com/); -
接收密钥:与接收站设置的密钥完全一致。
-
-
勾选要同步的文章类型与分类法(默认含分类、标签、专题)。
-
按需开启「删除也同步」。
-
点「测试所有目标站连通性」确认通信正常。
接收站(角色 = 接收站)
-
启用「接收」开关。
-
生成或填写一段复杂的「接收密钥」(建议 32 位以上随机串)。
-
把这段密钥原样填回主站对应目标站的「接收密钥」字段。
-
设置「允许接收的分类法」(默认全开)。
-
可选「来源白名单」:仅允许指定主站地址推送(留空表示接受任何带正确密钥的请求)。
双端模式:某站既是主站又接收别人推送时,角色选「双端」即可。
手动同步(分批)
进入设置页「手动操作」区:
-
每批数量:默认 50,可填 1–200(目标站慢时建议调小,如 10–20)。
-
筛选条件:可仅同步某分类 / 某标签 / 某专题 / 某发布时间段。
-
点击 「立即同步全部已发布文章」:前端自动分批续传,显示进度条与「成功/失败」统计;运行中再次点击按钮即可中途停止。
八、对象存储兼容性
若主站装有对象存储插件(图片自动上传到对象存储桶),不影响同步,反而更省事:
-
发送端取特色图用的是
wp_get_attachment_url(),返回的是桶/CDN 地址,payload 里只带一个 URL,不传图片二进制,轻量稳定。 -
接收端拿着 URL 下载并导入自己的媒体库;若接收站也装对象存储插件,落盘后会自动再上传到它自己的桶。
⚠️ 唯一注意:若对象存储开启防盗链(referer 校验)或私有桶(需签名 URL),接收端服务器下载会拿不到 referer → 403。请将接收站服务器 IP 加入白名单,或保持「公有读」。
九、安全与鉴权
-
传输签名:HMAC-SHA256,密钥不随请求明文出现。
-
防重放:时间戳 ±300 秒有效,过期请求直接拒绝。
-
来源白名单:可选,仅放行指定主站地址。
-
权限校验:手动操作需
manage_options权限 + WordPress nonce。 -
最小写入面:删除同步仅作用于「同步来的文章」,不会碰对方原创。
十、品牌菜单与多插件管理
本插件遵循「阿晨出品」统一规范:
-
所有阿晨插件自动归位到顶级菜单 「Hoarfall 工具」(
slug = hoarfall-tools); -
该菜单首页会自动扫描已激活的阿晨插件并列出各自的「设置」入口;
-
插件列表页带「设置」快捷链接,直达本插件设置页。
即便只装了这一款插件,菜单与跳转也正常工作。
十一、兼容性与要求
|
项目 |
要求 |
|---|---|
|
WordPress |
≥ 5.8 |
|
PHP |
≥ 7.4 |
|
主站/接收站 |
均为 WordPress(接收端依赖 WP REST) |
|
子比主题 |
可选。装了用美观的 CSF 设置页;没装自动降级原生设置页 |
|
SEO 插件 |
不强制。基础字段同步;专项 meta 见第五节说明 |
十二、常见问题(FAQ)
Q1:接收站已有相同文章,再同步会重复吗? 不会。接收端按「主站地址 + 主站文章 ID」查重,命中则原地更新。仅当某篇是你在接收站手工创建(无来源 meta)的同内容稿件时才可能重复——这是故意设计,避免误改对方原创。
Q2:主站有对象存储,会影响吗? 不影响,反而更省心。详见第八节。
Q3:没装子比主题能用吗? 能。设置页会自动降级为原生 WordPress 设置页,配置数据互通。
Q4:十万篇文章怎么同步? 用「立即同步全部」按钮的分批续传(游标 + 进度条),可中途停止、断点重跑,不会超时或内存溢出。
Q5:SEO 会同步吗? 标题/URL/正文/分类/特色图等会同步;SEO 插件的专项 meta(描述、关键词、canonical 等)当前版本不自动同步,详见第五节。
Q6:删主站文章,接收站会一起删吗? 仅当开启「删除也同步」且接收站那篇是「同步来的文章」时才会删,不会误删对方原创。
Q7:多个目标站,一个慢会影响其它吗? 不会。每个目标站独立推送,单站失败只记日志,不影响其它站与后续文章。
十三、目录结构
zibll-post-sync/
├── zibll-post-sync.php # 入口:插件头、常量、加载调度、设置跳转
├── readme.txt # WordPress 标准说明
├── assets/
│ └── js/
│ └── admin.js # 后台 JS:分批续传、进度条、连通性测试
└── includes/
├── functions.php # 通用函数:签名/校验、分类法映射、图片导入、来源查重、作者映射
├── sender.php # 发送端:save_post/delete 钩子、逐目标站推送
├── receiver.php # 接收端:REST 路由、校验、新建/更新、删除同步
├── admin-options.php # 设置页(Codestar Framework,子比主题)
├── settings-native.php # 设置页(原生 WP,非子比主题降级)
├── ajax.php # 手动同步 / 连通性测试的 Ajax 处理
└── brand-menu.php # 「Hoarfall 工具」统一顶级菜单
十四、更新日志
v1.0.0
-
单插件双角色(主站 / 接收站 / 双端)
-
自动同步发布与编辑(含分类法变更)、可选删除同步
-
HMAC-SHA256 签名 + 时间戳防重放鉴权、来源白名单
-
分类法按 slug 映射、作者按邮箱映射、特色图自动搬运
-
防回环 + 去重更新
-
手动分批游标续传(支持分类/标签/专题/日期筛选)
-
目标站连通性测试
-
统一「Hoarfall 工具」品牌菜单 + 插件列表「设置」跳转
-
非子比主题原生设置页降级兼容
十五、关于作者
本插件由 阿晨 开发并维护。
-
官网:打码( )
-
关于:打码( )
如果你需要定制功能(如 SEO meta 同步、自动 noindex、更多文章类型/自定义字段支持),欢迎通过上述渠道或私信联系。





![表情[se]-zibll子比社区](https://www.zibll.top/wp-content/themes/zibll/img/smilies/se.gif)




