🧠 概要:
概要
この記事では、WordPressのREST APIを利用して、Markdown形式で作成した記事をPythonスクリプトで自動的に投稿する方法を紹介しています。このプロセスを通じて、手動での投稿作業を効率化することを目指しています。
要約(箇条書き)
- 背景: 投稿作業の効率化を図るために、MarkdownからWordPressへの一括投稿を実現したい。
- 目標:
- Pythonスクリプトを使ってMarkdown記事をWordPressに投稿する。
- 記事のタイトル、本文、カテゴリ、タグ、アイキャッチを自動で設定。
- 投稿ステータスを「下書き」または「即時公開」に設定可能。
- WordPress REST APIの説明:
- 投稿や更新を外部から行うための仕組み。
- 管理画面を介さずにURLを介して操作が可能。
- 準備手順:
- Python 3.8以上をインストール。
- 必要なライブラリを
requirements.txt
からインストール。 - WordPress管理画面でApplication Passwordを発行。
- 設定ファイル(config.yaml)に接続情報を記載。
- 投稿スクリプトの基本構造:
requests
ライブラリを用いてAPIリクエストを送信するスクリプトの例を示す。
- 実行方法:
- スクリプトを実行し、WordPressの管理画面で下書きとして反映されれば成功。
- GitHubでの配布:
- サンプル一式がGitHubで公開されており、使用が可能。
- 次回予告: 見出し画像を自動で追加する仕組みを紹介予定。
- 動機: 社内ナレッジの更新を効率化するためにスクリプトによる自動化を進めている。
〜地味にめんどい投稿作業、もう手でやらなくてよくない?〜
はじめに
手元のMarkdown原稿を、ボタンひとつでWordPressに投稿できたらラクだと思いませんか?
この記事では、前回紹介したMarkdownテンプレートに続き、
WordPress REST APIを使って自動で下書き投稿する仕組みを紹介します。
実際のサンプルは GitHub で公開しています
👉 https://github.com/tsukurura/wp-post-kit
今回やること
-
Markdownで書いた記事をPythonスクリプトでWordPressに投稿
-
記事のタイトル・本文・カテゴリ・タグ・アイキャッチなどを自動で反映
-
投稿ステータス(下書き/即時公開)も選べる
WordPress REST APIってなに?
REST APIは、WordPressに外部から投稿や更新を行うための仕組みです。
WordPress 4.7以降で標準対応しており、以下のことが可能です。
-
投稿の作成・更新・削除
-
画像やファイルのアップロード
-
カテゴリやタグの操作
-
投稿ステータスの変更(公開/下書き/非公開など)
つまり、「管理画面を触らなくても記事が投稿できる」ようになります。
実行に必要な準備
🔧 Python環境
-
Python 3.8以上
-
必要なライブラリは `requirements.txt` に記載済み:
pip install -r requirements.txt
WordPressでApplication Passwordを発行する
-
WordPress管理画面にログイン(管理者ユーザーで)
-
「ユーザー」→「プロフィール」を開く
-
「Application Passwords」セクションを探す
-
任意の名前(例:wp-post-kit)を入力し「追加」
-
表示されたパスワードを控えておく(再表示不可)
⚠ 二要素認証(2FA)を有効にしているとこの機能が使えない場合があります。
🧾 設定ファイル(config.yaml)
以下のようにWordPressの接続情報を記載します:
wordpress: base_url: "https://your-wordpress-site.com" username: "your-admin-user" application_password: "xxxx xxxx xxxx xxxx" default_status: "draft"
投稿スクリプトの中身(ざっくり解説)
auth = (username, application_password)url = f"{base_url}/wp-json/wp/v2/posts" payload = { "title": "記事タイトル", "content": "<p>本文HTML</p>", "status": "draft", "categories": [category_id], "tags": [tag_id], "featured_media": image_id}response = requests.post(url, json=payload, auth=auth)
実行してみる
python post.py
-
投稿成功後、WordPressの管理画面の「投稿一覧」に記事が下書きで反映されていればOK!
-
投稿ステータスは config.yaml の default_status で切り替え可能です。
GitHubでテンプレ一式を配布中
📦 サンプル一式はこちら
👉 wp-post-kit on GitHub
wp-post-kit/├── articles/│ └── sample.md ├── images/│ └── sample.jpg ├── post.py ├── config.yaml └── README.md
次回予告:見出し画像も自動で入れたい
WordPressの記事に「見出し画像」が入っていると、やっぱり映える。
次回は、Canvaでまとめて作った画像を、MarkdownのH2見出しに自動で差し込む仕組みを紹介します。
おまけ:なぜこんなことをしてるのか?
会社のブログを更新しなきゃいけない…
でもブロックエディタを開くたびに気が重くなる…
そんな裏方のあなたのために。
**「社内ナレッジ更新という地獄」**を、スクリプトで自動化するシリーズ、続きます。
Views: 0