WordPress Publisher 使用教程
欢迎使用 WordPress Publisher!这是一个强大的 Codex Skill,可以帮助你轻松地将 Markdown 文章发布到 WordPress 站点。
🎯 功能特性
WordPress Publisher 提供以下核心功能:
- ✅ YAML Frontmatter 解析 – 自动提取标题、描述、分类等元数据
- ✅ 自动图片上传 – 检测并上传本地图片到 WordPress 媒体库
- ✅ 代码高亮 – 使用 Highlight.js 提供专业的代码展示
- ✅ 代码复制按钮 – 一键复制代码块内容
- ✅ 分类管理 – 自动创建不存在的分类
- ✅ SEO 集成 – 支持 Rank Math SEO 插件
- ✅ 发布历史 – 记录已发布的文章信息
📋 前置要求
在使用之前,请确保已安装以下依赖:
pip install pyyaml markdown requests python-dotenv
🔧 配置设置
方法一:使用 .env 文件(推荐)
创建 .env 文件,内容如下:
# WordPress 站点配置
WP_URL=https://your-site.com
WP_USERNAME=your_username
WP_APP_PASSWORD=your_app_password
# 默认文章状态
WP_DEFAULT_STATUS=publish
方法二:使用环境变量
# Windows PowerShell
$env:WP_APP_PASSWORD = "your_password"
# Linux/Mac
export WP_APP_PASSWORD="your_password"
获取 WordPress 应用密码
- 登录 WordPress 后台
- 进入 用户 → 个人资料
- 滚动到 应用程序密码 部分
- 输入名称(如:codex-publisher)
- 点击 添加新的应用程序密码
- 复制生成的密码
📝 Markdown 文件格式
基本结构
---
title: 文章标题
description: SEO 描述
categories:
- 分类1
- 分类2
tags:
- 标签1
- 标签2
---
# 文章正文
这里是文章内容...
Frontmatter 字段说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
title |
string | 是 | 文章标题 |
description |
string | 否 | SEO 描述 |
categories |
array | 否 | 分类列表 |
tags |
array | 否 | 标签列表 |
status |
string | 否 | 文章状态(draft/pending/publish) |
slug |
string | 否 | URL 别名 |
🚀 使用方法
基本用法
# 发布新文章
python push_to_wp.py article.md
# 预览模式(不实际发布)
python push_to_wp.py article.md --dry-run
# 更新现有文章
python push_to_wp.py article.md --id 142
# 保存为草稿
python push_to_wp.py article.md --status draft
在 Codex 中使用
直接告诉 Codex 你想发布文章:
帮我发布这篇文章到WordPress:path/to/article.md
或者使用触发词:
publish to wordpress: path/to/article.md
💻 代码示例
Python 示例
#!/usr/bin/env python3
"""简单的 HTTP 服务器示例"""
from http.server import HTTPServer, SimpleHTTPRequestHandler
def run_server(port=8000):
server_address = ('', port)
httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)
print(f"服务器运行在 http://localhost:{port}")
httpd.serve_forever()
if __name__ == "__main__":
run_server()
JavaScript 示例
// 异步获取数据
async function fetchData(url) {
try {
const response = await fetch(url);
const data = await response.json();
console.log('数据:', data);
return data;
} catch (error) {
console.error('错误:', error);
}
}
// 使用示例
fetchData('https://api.example.com/data');
Bash 示例
#!/bin/bash
# 批量重命名文件
for file in *.txt; do
mv "$file" "${file%.txt}.md"
echo "已重命名: $file -> ${file%.txt}.md"
done
echo "完成!"
📊 功能对比
| 功能 | 手动发布 | WordPress Publisher |
|---|---|---|
| Markdown 转 HTML | ❌ 手动 | ✅ 自动 |
| 图片上传 | ❌ 手动 | ✅ 自动 |
| 代码高亮 | ❌ 需插件 | ✅ 内置 |
| 分类管理 | ❌ 手动 | ✅ 自动创建 |
| SEO 设置 | ❌ 手动 | ✅ 自动 |
| 批量发布 | ❌ 困难 | ✅ 支持 |
🔍 常见问题
Q: 如何处理大型图片?
A: 脚本会自动检查图片大小,默认限制为 10MB。可以通过环境变量调整:
WP_MAX_IMAGE_SIZE=20971520 # 20MB
Q: 如何禁用代码高亮?
A: 使用 --no-highlight 参数:
python push_to_wp.py article.md --no-highlight
Q: 支持哪些 Markdown 扩展?
A: 默认支持:
– Fenced Code Blocks(代码块)
– Tables(表格)
– Codehilite(代码高亮)
Q: 如何查看发布历史?
A: 发布历史保存在 ~/.wp_publish_history.json 文件中。
📈 最佳实践
- 使用 Frontmatter – 始终添加 YAML frontmatter 以获得最佳效果
- 优化图片 – 发布前压缩图片以加快加载速度
- 使用预览模式 – 首次使用时先用
--dry-run检查 - 定期备份 – 保存重要的 Markdown 源文件
- 分类规划 – 提前规划好分类结构
🎨 代码高亮演示
JSON 配置示例
{
"name": "WordPress Publisher",
"version": "1.0.0",
"description": "Publish Markdown to WordPress",
"features": [
"auto-upload",
"code-highlight",
"category-management"
],
"config": {
"url": "https://example.com",
"status": "publish"
}
}
SQL 查询示例
-- 查询最近发布的文章
SELECT
p.ID,
p.post_title,
p.post_date,
t.name AS category
FROM wp_posts p
LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
LEFT JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
LEFT JOIN wp_terms t ON tt.term_id = t.term_id
WHERE p.post_status = 'publish'
AND p.post_type = 'post'
ORDER BY p.post_date DESC
LIMIT 10;
YAML 配置示例
# WordPress 部署配置
server:
host: example.com
port: 443
ssl: true
wordpress:
version: "6.4"
plugins:
- name: rank-math-seo
active: true
- name: wp-super-cache
active: true
deployment:
strategy: rolling
rollback: true
health_check: /wp-admin/admin-ajax.php
🔗 相关资源
📝 更新日志
v1.0.0 (2026-07-17)
- ✨ 初始发布
- ✅ 支持 YAML frontmatter 解析
- ✅ 自动图片上传
- ✅ 代码高亮和复制按钮
- ✅ 分类自动创建
- ✅ Rank Math SEO 集成
提示:本文档本身就是使用 WordPress Publisher 发布的示例!
最后更新:2026年7月17日
