自动化你的博客发布流程,解放双手去海滩!

作为一名技术爱好者,我经常写博客分享我的知识和经验。但是,每次发布一篇新文章都得经历繁琐的步骤:登录 WordPress 后台、创建新文章、将 Markdown 文本插入、转换 Markdown 为 HTML、上传图片、设置 SEO 元数据等等。这些重复性的任务简直让人抓狂!

有没有办法自动化这些操作呢?当然有!本文将展示如何利用 Python 自动化博客文章发布流程的第一部分,让你轻松解放双手去享受海滩时光! 😎

准备工作

  1. 安装 requests 模块: pip install requests
    这个模块让我们能够与 WordPress API 交互。

  2. 生成应用程序密码:

    • 登录你的 WordPress 网站,导航到 “用户” > “个人资料”。
    • 在“应用程序密码”部分,输入一个应用程序名称并点击“添加新应用程序密码”。
    • 将生成的密码妥善保存,确保安全!

关键数据和身份验证

要创建文章,你需要提供以下数据:

data = {
    'title': 'Example wordpress post', 
    'status': 'draft', 
    'slug': 'example-wordpress-post', 
    'author': 1, 
    'content': '# H1 heading \n ## h2 heading' 
}
  • title: 文章标题

  • status: 文章状态,这里设置为 “draft”(草稿)

  • slug: 文章别名,通常是标题中的关键词用“-”分隔

  • author: 作者ID,可以通过 https://<你的WordPress网站>/wp-json/wp/v2/users 查看

身份验证的关键在于使用应用程序密码:

WORDPRESS_CREDENTIALS = USER_NAME + ":" + APPLICATION_PASSWORD 
WORDPRESS_TOKEN = base64.b64encode(WORDPRESS_CREDENTIALS.encode()) 
WORDPRESS_HEADER = {'Authorization': 'Basic ' + WORDPRESS_TOKEN.decode('utf-8')} 
  • USER_NAME: 具有管理员权限的实际用户名

  • APPLICATION_PASSWORD: 你之前生成的应用程序密码

发布文章

现在,我们可以使用 requests 模块向 WordPress API 发送请求,上传我们的文章:

def upload_post(data):
    response = requests.post(API_ENDPOINT, json=data, headers=WORDPRESS_HEADER) 
    return response 

一些小工具

为了简化流程,我们可以编写一些辅助函数:

  • 生成文章别名: 将标题转换为小写并用“-”代替空格。
def make_slug_from_title(title):
    slug = title.lower().replace(" ", "-") 
    return slug  
  • 将 Markdown 转换为 HTML: 利用 Markdown 模块轻松转换你的文章格式。

    pip install Markdown
    html_text = markdown(article_content, output_format="html")
    
  • 从 Markdown 文件读取数据: 在一个函数中读取标题、内容和生成数据字典,方便直接上传。

def get_article_data(folder):
    # ... (代码省略) 

整合所有步骤

最后,我们将这些小工具整合起来,实现自动发布文章的流程:

data = get_article_data(folder) 
upload_post(data)   

Wordpress api 链接

https://developer.wordpress.org/rest-api/reference/posts/ https://developer.wordpress.org/rest-api/reference/

这样一来,你就可以轻松地在你的博客上发布高质量的文章了!