Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/underestimatedme/wordpress-momobird-ai/archive/refs/heads/main.zipMomoBird AI for WordPress
把 WordPress 的公开文章同步到 MomoBird 控制台的项目里,让这些文章可以在「问答调试」和网站问答助手里被提问、被引用;也可以把 MomoBird 问答助手挂到站点前台,并在文章页播放 AI 播客。
本插件属于 MomoBird 专业版功能。创建第一个项目时自动开始 14 天试用;如果那时还没开始,创建 WordPress 来源时开始(与 Typecho 共用同一次试用,不会叠加)。企业空间按企业套餐。
功能
- 同步公开文章(
post类型、已发布、没有设置密码),每篇文章在项目里是一篇文档,由服务端统一切块和索引。 - 文章发布、更新、定时发布到点时自动推送;转为私密、草稿、待审核、加密码、移入回收站或删除时自动从知识库下线。
- 保存文章不等待 MomoBird:插件在页面返回后(或由 WP-Cron 在后台)推送,MomoBird 不可用也不会拖慢或打断保存。
- 推送失败的文章每小时自动重试,最多 5 次;之后可以在后台点「重试失败项」。
- 后台一键全量同步,并清理站点里已经不存在或不再公开的文章。
- 可选:在前台显示 MomoBird 问答助手;在文章页显示播客播放器。
页面(page)、自定义文章类型、附件、评论不会同步。
环境要求
- WordPress 6.0 或更高版本
- PHP 7.4 或更高版本(需要 mbstring)
- 站点服务器可以访问
https://api.valley.atlaspaces.com - 暂不支持多站点网络启用;多站点请在每个子站点单独启用
安装
- 在 MomoBird 控制台(https://momobird.atlaspaces.com)打开或新建一个项目,进入「知识 → 连接博客 → 博客 / 论坛」,平台选 WordPress,填写站点地址和来源名称。
- 复制页面上显示的连接密钥(以
mbk_开头,只显示这一次),并下载插件包MomoBirdAI-WordPress-0.1.0.zip。 - 在 WordPress 后台「插件 → 安装插件 → 上传插件」上传 zip 并启用。
- 打开「设置 → MomoBird AI」,填写连接密钥并保存。
- 点「测试连接」,确认项目名称和权益,然后点「一键全量同步」。
启用插件会创建 {表前缀}momobird_sync 表,只保存同步状态和脱敏错误,不保存文章正文。
设置
| 设置 | 说明 |
|---|---|
| 连接密钥 | 控制台生成的 mbk_ 密钥;留空保存会保留已保存的密钥,设置页只显示前缀 |
| MomoBird Base URL | 默认 https://api.valley.atlaspaces.com,通常不需要修改;只有本机地址允许 HTTP |
| 请求超时 | 2–30 秒,默认 10 秒 |
| 自动同步 | 开启后文章变化时自动推送;关闭后仍可手动全量同步和重试 |
| 在前台显示问答助手 | 默认关闭。打开后在页面底部加载 MomoBird 助手 |
| 问答助手位置 | 右下角(默认)或左下角 |
| 在文章页显示播客播放器 | 默认打开。文章生成过播客时正文上方出现播放器,没有播客的文章不显示任何内容 |
| 播放器里显示播客文字稿 | 默认关闭 |
连接密钥只在服务端使用,不会出现在前台页面;设置页不会回显已保存的密钥。
同步规则
- 正文:插件渲染古腾堡区块,保留短代码包裹的文字(页面构建器、代码块、图片说明),去掉独立的短代码(相册、嵌入等),再转换为纯文本(保留标题层级)。不会经过其他插件对正文的加工,广告、相关文章、分享按钮不会进入知识库。
- 分类:每篇文章发送一个分类。装了 Yoast SEO 时用它的主分类,否则用文章的第一个分类;站点默认分类(通常是「未分类」)不发送。控制台知识页可以按分类筛选,问答助手也可以只回答某个分类。
- 何时推送:保存时先记为「待推送」,页面返回后推送;没有 PHP-FPM 或 LiteSpeed 的主机改由 WP-Cron 在后台推送,通常几秒内完成。内容和分类都没有变化时不会重复推送。
- 何时下线:文章离开「已发布」状态、被加上密码、进入回收站或被删除时发送下线请求;即使本地没有同步记录也会发送,保证非公开内容不会残留。
- 失败重试:网络错误或 MomoBird 暂时不可用时,文章记为失败,每小时自动重试,最多 5 次。
- 空文章:正文为空的文章记为「空文章已跳过」,不算失败;如果它之前同步过,会先从知识库下线。
一键全量同步
浏览器分批处理公开文章(每批 20 篇),不依赖 WP-Cron,也不会用一个超长请求同步整个站点。全部批次成功后,插件会对照 MomoBird 上的文章列表,下线站点里已经不存在或不再公开的文章。单篇文章被拒绝只记为该篇失败;网络错误或权益到期会中断本轮,且不会执行清理。请在同步过程中保持页面打开。
前台问答助手与播客
- 打开「在前台显示问答助手」后,插件会把站点域名加入控制台的「允许的来源」;网站接入还没发布过时会自动发布一次。还没有文章完成索引时,全量同步结束后会再试一次,之后每小时检查。
- 在控制台关闭或撤销了网站接入时,插件不会自动重新开启。
- 读者访问页面时插件只读本地缓存,不请求 MomoBird;状态变化最多几分钟(未使用 PHP-FPM 的主机最多一小时)反映到前台。
- 播客在 MomoBird 控制台生成;插件只在公开的单篇文章页插入一个不可见的占位元素,并加载
https://momobird.atlaspaces.com/widget/podcast.v1.js。
专业版与试用
- 试用或专业版到期后:新文章不再同步,前台助手隐藏;已经同步的文章仍可在控制台问答调试中使用。
- 到期后文章转为非公开或被删除时,插件仍会把它从知识库下线。
- 开通或续费:在 MomoBird 控制台点顶栏的套餐,输入兑换码。
停用与卸载
- 停用插件:不删除 MomoBird 上的知识,也不删除本地同步表和设置,再次启用即可继续。
- 删除插件(「插件 → 已安装的插件 → 删除」):清除插件设置和同步表。MomoBird 上的知识需要在控制台删除对应来源。
故障排查
| 状态或现象 | 检查项 |
|---|---|
| 401 | 连接密钥缺失、复制错误、已被重新生成或吊销,或者控制台里的来源已被删除 |
402 PLAN_REQUIRED |
试用或专业版已到期;新文章不会同步,删除仍会生效。开通后点「一键全量同步」补齐 |
409 WIDGET_NOT_READY |
还没有任何文章完成索引,先全量同步,稍后再开启前台助手 |
413 / PAYLOAD_TOO_LARGE |
单篇文章正文超过 2 MiB |
VALIDATION_FAILED / 地址不一致提示 |
文章链接不在这个密钥所属来源的站点地址下;换成按站点实际地址创建的 WordPress 来源的密钥 |
| 测试连接提示密钥属于其他来源 | 填的是 Typecho 等来源的密钥;能用,但建议在控制台新建 WordPress 来源换上它的密钥 |
http_request_failed / 超时 |
服务器无法访问 MomoBird,或超时设置过短 |
| 保存成功但失败计数增加 | 到「设置 → MomoBird AI」查看最近错误,点「重试失败项」 |
开发
php tests/run.php
find . -name '*.php' -not -path './dev/*' -print0 | xargs -0 -n1 php -l
node --check assets/admin.js
bash scripts/package.sh
scripts/package.sh 生成 dist/MomoBirdAI-WordPress-<版本>.zip,顶层目录为 momobird-ai/,不包含测试和开发文件。
本地试用:dev/docker-compose.yml 起一个 WordPress(http://localhost:8088);`dev/mock-connect.php` 是 connect API 的本地替身,用法见文件开头的注释。
安全说明
- 所有 MomoBird 请求都从 PHP 服务端发出,前台只输出问答助手的公开项目 ID。
- 后台操作要求
manage_options权限,REST 请求校验 WordPress nonce。 - 生产 Base URL 必须使用 HTTPS,保持 TLS 证书校验,并限制响应体大小。
- 错误信息和同步表不记录连接密钥、文章正文或完整的服务端响应。
License
GPL-2.0-or-later