毎日記事を書いていると「管理画面を開いて、新規投稿を押して、タイトルを入力して…」という流れが地味に面倒ですよね。
実は PythonとWordPress REST API を使えば、ワンクリックで記事を投稿する仕組みを自分のPCに作ることができます。
この記事では、実際に動くまでの流れを分かりやすく解説します。
この方法なら、誰でも「毎朝記事を書いてワンクリックで投稿!」が実現できます。
1. 仕組みの全体像
- WordPressには REST API という投稿用の仕組みが標準で入っています。
- Pythonスクリプトから
POST /wp-json/wp/v2/posts
にデータを送れば記事が作成されます。 - タイトルや本文をテキストファイルにしておけば、Pythonが自動で読み込んで記事にしてくれます。
最終的に、次のような流れで投稿できます👇
title_u8.txt
にタイトルを書くcontent_u8.html
に本文(HTMLもOK)を書く- デスクトップの「ワンクリック投稿」をダブルクリック
- すぐWordPressに記事が投稿される!(成功すると投稿URLが表示される)
2. 必要なもの
- Python(3.10以上推奨)
- ライブラリ
requests
pip install requests
- WordPressの「アプリケーションパスワード」
(管理画面 → ユーザー → プロファイル → アプリケーションパスワードから発行できます)
3. フォルダ構成
例えば C:\kijisakusei
に以下のファイルを置きます:
C:\kijisakusei
├ post_to_wp.py ← 投稿スクリプト
├ .env ← ユーザー名やパスワードを保存
├ title_u8.txt ← 毎日編集するタイトル
└ content_u8.html ← 毎日編集する本文
4. .env の書き方
.env
ファイルに認証情報を入れておきます。
WP_URL=https://あなたのサイトURL/wp-json/wp/v2/posts
WP_USER=WordPressのユーザー名
WP_APP_PASSWORD=発行したアプリケーションパスワード
CATEGORY_IDS=8
STATUS=draft
CATEGORY_IDS
:投稿先のカテゴリーID(複数ならカンマ区切り)STATUS
:draft
(下書き)、publish
(公開)など
5. Pythonスクリプト(post_to_wp.py)
記事投稿を自動化するメインスクリプトです。
(タイトルと本文をUTF-8ファイルから読み込み、WordPressへ送信します)
# -*- coding: utf-8 -*-
import json, os, sys
import requests
from requests.auth import HTTPBasicAuth
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
def load_env(path):
env = {}
if os.path.exists(path):
with open(path, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line or line.startswith("#") or "=" not in line:
continue
k, v = line.split("=", 1)
env[k.strip()] = v.strip()
return env
def read_text(path):
with open(path, "r", encoding="utf-8") as f:
return f.read()
def main():
env = load_env(os.path.join(BASE_DIR, ".env"))
WP_URL = env.get("WP_URL")
WP_USER = env.get("WP_USER")
WP_APP = env.get("WP_APP_PASSWORD")
STATUS = env.get("STATUS", "draft")
cats = [int(x) for x in env.get("CATEGORY_IDS", "1").split(",")]
title = read_text(os.path.join(BASE_DIR, "title_u8.txt")).strip()
content = read_text(os.path.join(BASE_DIR, "content_u8.html"))
payload = {"title": title, "content": content, "status": STATUS, "categories": cats}
res = requests.post(WP_URL, json=payload, auth=HTTPBasicAuth(WP_USER, WP_APP))
print("HTTP Status:", res.status_code)
try:
data = res.json()
print(json.dumps(data, ensure_ascii=False, indent=2))
if res.status_code == 201:
print("✅ 投稿成功:", data["link"])
except Exception:
print(res.text)
if __name__ == "__main__":
main()
6. ワンクリックで実行する
oneclick_post.bat
を作ってデスクトップにショートカットを置けば、ダブルクリックで実行できます。
@echo off
chcp 65001 >nul
cd /d "%~dp0"
notepad title_u8.txt
notepad content_u8.html
python post_to_wp.py
pause
7. 実際に使ってみる
title_u8.txt
に記事タイトルを入力(例: 「アプリ開発3日目」)content_u8.html
に本文を書く(段落や画像タグもOK)- 「ワンクリック投稿」をダブルクリック
- PowerShellに「✅ 投稿成功: https://example.com/?p=123」 と表示されれば成功!
まとめ
- WordPress REST API と Python を組み合わせれば、記事投稿を完全自動化できる
- タイトルと本文をファイルに書いて保存 → ダブルクリックで即投稿!
- 毎日のルーチンを大幅に時短できる
👉 これで「誰でもワンクリックで毎日記事投稿できる環境」が完成です。
明日からの更新がぐっとラクになりますよ ✨
コメント