WP Manifestindependent plugin directory
manifest / integrations / wp-wechat-sync

WP WeChat Sync (微信公众号文章同步助手)

WordPress 文章自动同步到微信公众号草稿箱插件,支持正文图片转存微信永久 CDN、封面智能提取与日志排查。

by 李成成的博客 (LiChengCheng) · github.com/lichengcheng0420/wp-wechat-sync · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/lichengcheng0420/wp-wechat-sync/archive/refs/heads/main.zip

为 WordPress 打造的微信公众号文章同步插件。在 WordPress 中撰写或发布的文章可自动或一键同步到微信公众平台草稿箱(或直接公开发布)。


主要特性

  1. 对接微信官方最新草稿箱接口:采用官方推荐的 cgi-bin/draft/add 接口,同步后可在微信公众平台后台预览、排版微调、群发或定时发布。
  2. 正文图片自动转存微信永久 CDN:自动提取文章中的所有 <img> 本地及外链图片,调用微信 cgi-bin/media/uploadimg 接口转存至微信 CDN 并替换链接,彻底解决微信文章外链防盗链及图片裂图问题;支持本地 CDN 映射缓存,避免重复上传。
  3. 封面图智能提取:按优先级自动提取:文章特色图像(Featured Image) > 正文第一张图 > 全局默认封面图,自动上传永久素材库获取 thumb_media_id
  4. 服务器公网出口 IP 自动识别:微信公众平台强制校验调用方 IP 白名单。插件在后台直观展示当前服务器公网出口 IP,支持一键复制,避免配置白名单时盲猜 IP。
  5. API 连接一键测试:在插件后台填写 AppID 和 AppSecret 后,可直接点击“测试 API 连接”,实时校验凭据有效性与 IP 白名单配置,提供清晰的中文错误指引。
  6. 文章编辑页侧边栏组件
    • 实时显示文章同步状态(未同步 / 已同步至草稿箱 / 同步时间 / 草稿 ID)。
    • 提供“立即同步到公众号” AJAX 按钮,无需重新保存文章即可手动一键同步。
    • 支持文章级别的自定义微信作者、自定义微信摘要(自动限制 120 字)、禁止自动同步开关。
  7. 文章列表页快捷状态展示:在后台文章列表(wp-admin/edit.php)增加“微信同步”状态列,直观显示已同步状态及快捷“同步/重试”链接。
  8. 详细日志追踪与排查:记录最近 50 条同步历史(包含自动同步、手动同步、测试连接的请求与返回详情),方便快速排查异常。

安装与使用指引

1. 启用插件

进入 WordPress 后台 -> 插件 -> 已安装插件,找到 WP WeChat Sync (微信公众号文章同步助手) 并点击 启用

2. 获取微信开发者平台凭据与配置 IP 白名单

  1. 登录 微信开发者平台(或 微信公众平台)。
  2. 选择对应公众号,进入 “基础信息” 页面。
  3. “开发密钥” 区域:
    • 复制 开发者ID (AppID)
    • 点击 重置 开发者密码获取 AppSecret 并妥善保存。
    • API IP白名单 点击 编辑,将 WordPress 插件后台提示的 当前服务器公网出口 IP 粘贴加入,管理员扫码确认保存。

4. 插件配置与测试

  1. 在 WordPress 后台 设置 -> 微信同步 中,填写 AppIDAppSecret
  2. 点击 测试 API 连接,确认显示“连接成功!已顺利获取到 Access Token”。
  3. 根据需要配置:
    • 同步目标:推荐选择“同步至草稿箱”。
    • 自动同步开关:发布新文章时是否自动同步。
    • 全局默认封面:选择一张默认图片作为保底封面(微信图文必须有封面)。
    • 原文链接与版权:开启微信底部的“阅读原文”直达 WordPress 原文。
  4. 点击 保存设置

5. 开始同步文章

  • 自动同步:撰写新文章并点击“发布”时,插件将自动转存图片并推送到微信公众平台草稿箱。
  • 手动同步:在文章编辑页右侧侧边栏“微信公众号同步”面板中,点击 立即同步到公众号 即可。

目录结构

wp-content/plugins/wp-wechat-sync/
├── wp-wechat-sync.php                 # 插件入口主文件
├── README.md                          # 插件说明文档
├── includes/
│   ├── class-wechat-api.php           # 微信官方接口封装与错误码中文化
│   ├── class-post-sync.php            # 文章内容转换、图片转存与同步核心逻辑
│   ├── class-admin-settings.php       # 后台设置页面与 AJAX 处理器
│   ├── class-meta-box.php             # 文章编辑页侧边栏组件与列表列
│   └── class-sync-logger.php          # 同步历史与错误日志记录器
└── assets/
    ├── css/admin.css                  # 后台美化样式表
    └── js/admin.js                    # 设置页与编辑页交互脚本

更新日志

v1.0.9 (2026-09-08)

  • 微信图文列表排版彻底重构(对齐 秀米/135/Doocs 微信工业级规范)
    • 列表扁平化段落渲染(<section> + <p>:彻底解决微信 UEditor 解析内核对 <li> 列表项内多标签混排时的“数字单独一行”、“冒号单独一行”、“项目圆点单独一行”等异常断行分段顽疾。将原生 <ul>/<ol> 转换为微信富文本生态兼容性最高的 <p> 段落结构,确保在 iOS/Android/Mac/PC 各版本微信客户端 100% 紧密连贯、绝不产生任何怪异分行。
    • 多级嵌套列表层级缩进:对二级或多级列表项采用 margin-left 精确缩进,层次分明,排版优雅清爽。
    • Markdown 语法与标点粘连优化
      • 针对从 GitHub 或外部粘贴正文时混入的 Markdown 粗体语法(如 **文字**),自动平滑转换为原生 <strong>文字</strong> 标签。
      • 严格清除加粗标题与后随冒号(:)之间的换行与空格,确保标题与冒号紧密结合在一行显示。
      • 自动清理段落内部空占位符与孤立段落标签。

v1.0.8 (2026-09-08)

  • 解决微信同步“丢失文字与编号”排版顽疾
    • 有序列表(<ol>)原生实体编号:突破微信图文自带全局 CSS (ol, ul, li { list-style: none !important; }) 抹除自动编号的限制,通过 DOM 解析全自动为每一个列表项注入独立样式的实体数字序号(1., 2....),并在已有手动编号时智能去重,确保在任何微信客户端均 100% 显式呈现序号,复制与阅读绝不丢失。
    • 无序列表(<ul>)实体项目符号:自动注入醒目的实体圆点符号(),并针对多级嵌套列表优化左侧缩进层级。
    • 列表项内段落(<p>)平滑内联:当列表项内包含 <p> 标签时,自动设为 display: inline,防止序号与文本发生意外分行错位。
  • 多行代码块(<pre><code>)排版强化
    • 彻底解决微信草稿箱接口与富文本编辑器过滤多行代码换行符 \n 导致整段代码与目录树折叠压成一行的致命问题。
    • 显式将代码换行转换为标准 <br/>,并将缩进与对齐空格转换为实体 &nbsp;,同时赋予 white-space: pre-wrap !important; word-wrap: break-word !important; 样式,保证目录结构、代码缩进及高亮块在微信中原样整齐排版。
  • 行内标签与换行规整
    • 清理行内加粗(<strong>)及行内代码(<code>)两端的非预期换行与中文标点间隙,避免微信图文将行内词句切断为散落的多行碎文本。

v1.0.7 (2026-09-08)

  • 微信 45166 错误深度根治
    • 针对正文严格禁止使用 <h1> 标签的官方规范,增加 <h1> 自动降级至合规 <h2> 大标题机制。
    • 全局清洗所有 HTML 标签上的 tabindexdirrolelangidaria-* 以及非标准 data-* 属性,杜绝交互式干扰属性引起微信解析异常。
    • 深度清理复制粘贴来源(如 GitHub README)特有的剪贴板容器辅助元素(zeroclipboard-container)及多余的标题包装层。
    • 递归清理空白无内容的容器标签(空 div、空 p 等)与标题后孤立的 &nbsp;
    • 完善自闭合标签(如 <hr />)的内联样式注入逻辑,防止生成非法属性格式。
    • 图片清洗兜底防护:若有正文图片未能成功转存至微信 CDN,自动剔除无效图片标签,保证文章整体顺利推送。
  • 排版增强
    • 代码块与行内 <code> 样式隔离保护,提供更加优美清爽的微信图文阅读排版。

版权与技术支持