ブログやニュースサイトの運営で「記事を自動投稿できたら便利なのに」と思ったことはありませんか?
実は、WordPressには「REST API」と呼ばれる機能があり、Pythonなどのプログラミング言語を使えば、記事を自動で投稿することが可能です。
本記事では、PythonからWordPressへ記事を自動投稿するための手順を、初心者にもわかりやすく解説します。
環境構築からコードの具体例、トラブル時の対処法まで網羅して紹介するので、自動化に興味のある方はぜひ最後までご覧ください。
WordPressに自動投稿する仕組みとは?
WordPressはREST APIを通じて、外部のプログラムから投稿や更新、削除などの操作ができます。
このAPIはHTTPリクエストを使って動作するため、PythonのようなHTTP通信ができる言語なら連携は簡単です。
REST APIの主なエンドポイント
- 投稿一覧取得:
GET /wp-json/wp/v2/posts
- 新規投稿作成:
POST /wp-json/wp/v2/posts
- 投稿の更新:
POST /wp-json/wp/v2/posts/{id}
これらに対して適切なデータと認証情報を送ることで、自動投稿が可能になります。
事前準備:必要な環境と設定
PythonからWordPressへ投稿するには、以下の準備が必要です。
1. WordPressの環境確認
- WordPressがREST APIを有効にしている(通常はデフォルトで有効)
- HTTPS対応であること(セキュリティ上推奨)
2. WordPress側の認証設定
WordPress REST APIでは認証が必須です。簡単に使える認証方法として「アプリケーションパスワード」があります。
アプリケーションパスワードの設定手順
- WordPressに管理者でログイン
- ユーザープロフィール画面を開く
- 「アプリケーションパスワード」セクションで名前を入力し生成
- 表示されたパスワードをメモしておく(再表示不可)
Pythonスクリプトで自動投稿する方法
ここでは、Pythonスクリプトで記事を投稿する方法を具体的に紹介します。
使用するライブラリ
pip install requests
投稿スクリプトの基本構成
import requests
from requests.auth import HTTPBasicAuth
# WordPressサイトのURL
url = "https://your-wordpress-site.com/wp-json/wp/v2/posts"
# 認証情報(ユーザー名とアプリケーションパスワード)
username = "your-username"
app_password = "your-application-password"
# 投稿内容
data = {
'title': 'Pythonからの自動投稿テスト',
'content': '<h2>これはPythonから投稿された記事です。</h2>',
'status': 'publish' # draft にすれば下書き投稿も可
}
# 投稿リクエスト送信
response = requests.post(url, auth=HTTPBasicAuth(username, app_password), json=data)
# 結果の確認
if response.status_code == 201:
print("✅ 投稿成功!")
else:
print(f"❌ 投稿失敗: {response.status_code}")
print(response.text)
投稿時によくあるエラーと対処法
エラー例1:401 Unauthorized
原因:認証情報が正しくない。
対処法:
- アプリケーションパスワードが間違っていないか確認
- ユーザー名をWordPressのログインIDにすること
エラー例2:403 Forbidden
原因:権限が不足している、もしくはプラグイン等がAPIをブロックしている。
対処法:
- 管理者ユーザーでアプリケーションパスワードを生成
- セキュリティ系プラグインの設定を見直す
HTMLタグの扱いと注意点
content
にはHTMLタグを含めることが可能です。
ただし、以下の点に注意しましょう。
- タグは正しく閉じること(例:
<h2>タイトル</h2>
) - scriptタグやstyleタグは無効になる可能性がある
- セキュリティ対策で特定のタグが除去されることがある
自動投稿をさらに便利にする応用アイデア
タイトルと本文をCSVやデータベースから読み込む
例えば、複数の記事をCSVで管理し、ループで投稿することも可能です。
ChatGPTなどと連携して記事を生成
ChatGPTのAPIと組み合わせて、AIによる記事生成も可能です。
投稿後にタグやアイキャッチ画像を設定
REST APIではtags
やfeatured_media
のパラメータも使えるので、より本格的な投稿が可能になります。
まとめ
Pythonを使えば、WordPressに自動で記事を投稿することができます。
REST APIとアプリケーションパスワードの組み合わせにより、安全で柔軟な自動化が実現可能です。
自動投稿の仕組みをマスターすれば、更新作業の効率化や大量記事の定期投稿など、幅広く活用できるでしょう。
今回のコードをベースに、ぜひ自分の運用スタイルに合った自動化システムを構築してみてください。