- 飞书消息接收与处理(文字、图片、Word 文档) - WordPress REST API 文章发布 - 图片自动上传到媒体库 - Word 文档解析与发布 - HTML 格式化与分类自动匹配 - Python CLI 工具(避免 shell 引号冲突) - Webhook 服务器(8080 端口) - 完整日志系统
4.8 KiB
4.8 KiB
WordPress 自动发布系统
基于 OpenClaw + WordPress REST API 的自动化文章发布系统,支持 Word 文档解析和文字 + 图片发布。
📁 目录结构
wp-publish/
├── config.py # 配置文件
├── README.md # 使用说明
├── logs/ # 日志目录
│ ├── publish.log # 发布日志
│ ├── debug.log # 调试日志
│ └── error.log # 错误日志
├── modules/ # 功能模块
│ ├── __init__.py # 模块包初始化
│ ├── wp_logger.py # 日志系统
│ ├── wp_parse_docx.py # Word 文档解析
│ ├── wp_image_handler.py # 图片处理与上传
│ ├── wp_formatter.py # HTML 格式化
│ ├── wp_api.py # WordPress API
│ └── wp_category.py # 分类匹配
├── scripts/ # 执行脚本
│ ├── wp_publish.py # 主发布脚本(Word 文档)
│ └── wp_publish_text.py # 文字 + 图片发布脚本
├── temp/ # 临时文件
└── templates/ # 模板文件
🚀 使用方法
1. Word 文档发布
# 基本用法
python3 /www/wwwroot/wp-publish/scripts/wp_publish.py /path/to/document.docx
# 指定分类
python3 /www/wwwroot/wp-publish/scripts/wp_publish.py /path/to/document.docx -c 9
# 指定指令(支持 #分类 格式)
python3 /www/wwwroot/wp-publish/scripts/wp_publish.py /path/to/document.docx -i "#分类 技术"
# 指定标签
python3 /www/wwwroot/wp-publish/scripts/wp_publish.py /path/to/document.docx -t "1,2,3"
# 预览模式(不实际发布)
python3 /www/wwwroot/wp-publish/scripts/wp_publish.py /path/to/document.docx -d
# 保存为草稿
python3 /www/wwwroot/wp-publish/scripts/wp_publish.py /path/to/document.docx -s draft
2. 文字 + 图片发布
# 基本用法
python3 /www/wwwroot/wp-publish/scripts/wp_publish_text.py "这是文章正文内容"
# 带图片发布
python3 /www/wwwroot/wp-publish/scripts/wp_publish_text.py "文章正文" -i /path/to/image1.jpg /path/to/image2.jpg
# 指定标题
python3 /www/wwwroot/wp-publish/scripts/wp_publish_text.py "文章正文" -t "自定义标题"
# 指定分类指令
python3 /www/wwwroot/wp-publish/scripts/wp_publish_text.py "文章正文" -c "#分类 ai"
# 指定标签
python3 /www/wwwroot/wp-publish/scripts/wp_publish_text.py "文章正文" -T "1,2,3"
📋 分类列表
| ID | 名称 | Slug | 说明 |
|---|---|---|---|
| 12 | Ai 科普 | ai-kepu | AI 科普类文章 |
| 11 | Ai 资讯 | ai-zixun | AI 行业新闻 |
| 16 | GEO | geo | GEO 优化相关 |
| 9 | 人工智能 | ai | 通用 AI 文章 |
| 5 | 技术资料 | jishu | 技术教程 |
| 10 | 好物分享 | fenxiang | 产品推荐 |
| 4 | 文章分享 | wenzhang | 转载文章 |
| 8 | 杂记 | zaji | miscellaneous |
| 7 | 随笔 | suibi | 个人随笔(默认) |
| 1 | 关于我们 | guanyu | 网站信息 |
⚙️ 配置说明
编辑 config.py 文件:
# WordPress 配置
wp_url = 'https://www.nanlou.net'
wp_user = 'shaowu'
wp_password = 'your_app_password'
# 默认分类 ID
default_category = 7
# 是否自动匹配分类
auto_match_category = True
# 图片优化配置
optimize_images = True
image_max_width = 1200
image_quality = 85
# 默认发布状态
post_status = 'publish'
📝 日志说明
系统会生成三种日志:
| 日志文件 | 说明 | 级别 |
|---|---|---|
logs/publish.log |
发布操作日志 | INFO |
logs/debug.log |
调试信息日志 | DEBUG |
logs/error.log |
错误日志 | ERROR |
日志文件自动轮转,单个文件最大 10MB,保留最近 5 个备份。
🔧 依赖库
pip3 install python-docx requests Pillow
📌 注意事项
- 确保 WordPress 已安装 Application Passwords 插件(WordPress 5.6+ 已内置)
- 应用密码需要在 WordPress 后台生成
- 图片会自动上传到 WordPress 媒体库
- 第一张图片会自动设置为特色图片
- 支持 Word 文档 (.docx) 格式
- 图片格式支持:JPG, PNG, GIF, BMP, WebP
🐛 故障排除
常见问题
-
发布失败 - 401 未授权
- 检查 WordPress 用户名和应用密码是否正确
- 确认用户具有发布文章权限
-
图片上传失败
- 检查图片格式是否支持
- 确认 WordPress 媒体库权限设置
-
分类匹配错误
- 使用
-c参数手动指定分类 - 检查分类 slug 是否正确
- 使用
-
Word 解析失败
- 确保文件为 .docx 格式(不支持 .doc)
- 检查文件是否损坏
📞 技术支持
如有问题,请查看日志文件获取详细错误信息。