Pythonで解決!MarkdownファイルをWordPressへ自動投稿する方法

未分類

ブログを書くとき、「エディタは使い慣れたMarkdownがいいけれど、WordPressにコピペして整形するのは面倒……」と感じたことはありませんか?

今回は、PythonのmarkdownライブラリとWordPress REST APIを組み合わせて、ローカルのMarkdownファイルを一瞬で「下書き投稿」するスクリプトを解説します。

1. 処理の全体像

このスクリプトは大きく分けて3つのステップで動いています。

  1. Markdownの読み込み: ローカルファイルを読み込み、1行目を「タイトル」、2行目以降を「本文」として分離します。
  2. HTML変換: markdownライブラリを使い、WordPressが解釈できるHTML形式へ変換します。
  3. API送信: 変換したデータをWordPressのREST APIへ投げ、記事を作成します。

2. スクリプトの解説

ステップ1:MarkdownをHTMLに変換する

WordPressは基本的にHTMLでコンテンツを保持します。そこで、Pythonのmarkdownパッケージを利用します。

# 'extra' 拡張を使うと、表(テーブル)なども扱えるようになります
html_content = markdown.markdown(body_markdown, extensions=['extra', 'codehilite'])

Point: extensions=['extra'] を指定することで、標準的なMarkdownだけでなく、テーブル(表)や脚注などの高度な記述にも対応できるようになります。

ステップ2:認証(Basic認証)

WordPress APIを叩くためには「合言葉」が必要です。ユーザー名とアプリケーションパスワード(WordPress管理画面で発行可能)をBase64形式でエンコードしてヘッダーに含めます。

ステップ3:JSON形式でデータをPOST

最後に、タイトルと変換後のHTMLを辞書形式にまとめ、APIエンドポイントへ送信します。

data = {
    "title": title,
    "content": html_content, # ここがHTMLになる
    "status": "draft",       # いきなり公開せず「下書き」に設定
}

3. 実行時の注意点

  • 環境構築: 事前に pip install requests markdown でライブラリをインストールしておきましょう。
  • アプリケーションパスワード: 自分のログインパスワードではなく、WordPressのユーザー設定画面で発行する「アプリ専用パスワード」を使用してください(セキュリティ上重要です!)。
  • シンタックスハイライト: codehilite 拡張を使う場合、表示側のWordPressテーマにCSSが設定されていないとコードが綺麗に色分けされないことがあります。

まとめ

このスクリプトを使えば、VS Codeなどで書いたドキュメントをコマンド一つでWordPressへアップロードできます。

「執筆はローカルで爆速に、公開はWordPressでスマートに」

これで快適なブログライフをぜひ手に入れました!

コメント

タイトルとURLをコピーしました