ブログ運営って、「書く」以外の作業が地味に時間を奪いますよね😇
下書き保存、画像アップ、アイキャッチ設定、投稿ボタン……。
これを Python×WordPress REST API でまとめて自動化できたら、作業時間がごっそり減ります🧠✨
この記事では、画像(メディア)をアップロード → 記事投稿 → サムネ(アイキャッチ)設定までを、最短ルートでつなぐ方法を解説します📌
(手順の流れは「メディアを先にアップ→投稿作成→featured_media指定」の形です )
この記事では、Pythonを使って WordPressへの記事投稿を自動化する基本 をわかりやすく解説します📌
もし「投稿だけでなく、画像付き投稿やサムネイルまで自動化したい!」という場合は、こちらの記事も合わせて読むとさらに効率化が進みます👇
➡️ 【PythonでWordPressに自動投稿する REST API活用ガイド】(※自動投稿の基本からステップ実装まで丁寧に紹介)
WordPressへHTTPリクエストを投げるため、requests を使います。インストールはこれだけ👇
pip install requests
この流れが一番シンプルで事故りにくいです👍
(記事の構成もこの2ステップで説明されています )
/wp-json/wp/v2/media※サイトURLやユーザー情報は自分の環境に置き換えてください。
import requests
from pathlib import Path
WP_BASE = "https://example.com"
MEDIA_ENDPOINT = f"{WP_BASE}/wp-json/wp/v2/media"
USER = "your_username"
APP_PASS = "your_application_password" # アプリケーションパスワード推奨
AUTH = (USER, APP_PASS)
image_path = Path("path/to/your/image.jpg")
image_name = image_path.name
headers = {
"Content-Disposition": f'attachment; filename="{image_name}"',
"Content-Type": "image/jpeg", # pngなら image/png
}
with image_path.open("rb") as f:
r = requests.post(MEDIA_ENDPOINT, auth=AUTH, headers=headers, data=f)
r.raise_for_status()
media_id = r.json()["id"]
print("Uploaded media_id:", media_id)
/wp-json/wp/v2/postsimport requests
POSTS_ENDPOINT = f"{WP_BASE}/wp-json/wp/v2/posts"
post_data = {
"title": "Post with Featured Image",
"content": "本文です。HTMLでもOKです。",
"status": "publish", # 下書きなら "draft"
"featured_media": media_id, # ← ここがアイキャッチ!
}
r = requests.post(POSTS_ENDPOINT, auth=AUTH, json=post_data)
r.raise_for_status()
print("Created post:", r.json()["link"])
アップロードした画像の ID(media_id) を featured_media に入れると、投稿のアイキャッチとして設定されます
featured_media に入れてるのが ID(数値) か確認json=post_data を使う(requestsが適切に扱いやすい)Python×WordPress REST APIで、
「投稿」+「サムネ設定」まで自動化できると、更新の心理的ハードルが激減します😌✨
手作業に追われるより、
コンテンツ作り・改善・収益導線に時間を回せるようになるのが最大のメリットです💰🚀
(手作業を減らして効率化しよう、という趣旨も記事内で述べられています )
基本的にはWordPressに標準搭載です。ただし、認証やセキュリティ設定(プラグイン/WAF)で制限されることがあります🔒
できます✅
先に画像をアップロードして media_id を取り、投稿作成時に featured_media に入れればOKです
status を "draft" にすれば下書き保存できます📝✨(後から管理画面で公開もラク)
ヘッダの Content-Type を image/png に変えればOKです🎨
HTTPSの利用、アプリケーションパスワードの適切管理、権限の最小化が重要です🔐
「Pythonで業務を自動化したいけど、どこから手を付ければいいか迷う…」という人は、まずこの1冊があると安心です😊
現場で使う“自動化の考え方”から、実装の手順までまとまっているので、手作業を減らす仕組みづくりのヒントが一気に見つかります👇リンクリンク
イラスト1枚から、テクスチャ付…