ブログやニュースサイトの運営で「記事を自動投稿できたら便利なのに」と思ったことはありませんか?
実は、WordPressには「REST API」と呼ばれる機能があり、Pythonなどのプログラミング言語を使えば、記事を自動で投稿することが可能です。
本記事では、PythonからWordPressへ記事を自動投稿するための手順を、初心者にもわかりやすく解説します。
環境構築からコードの具体例、トラブル時の対処法まで網羅して紹介するので、自動化に興味のある方はぜひ最後までご覧ください。
WordPressはREST APIを通じて、外部のプログラムから投稿や更新、削除などの操作ができます。
このAPIはHTTPリクエストを使って動作するため、PythonのようなHTTP通信ができる言語なら連携は簡単です。
GET /wp-json/wp/v2/posts
POST /wp-json/wp/v2/posts
POST /wp-json/wp/v2/posts/{id}
これらに対して適切なデータと認証情報を送ることで、自動投稿が可能になります。
PythonからWordPressへ投稿するには、以下の準備が必要です。
WordPress REST APIでは認証が必須です。簡単に使える認証方法として「アプリケーションパスワード」があります。
ここでは、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)
原因:認証情報が正しくない。
対処法:
原因:権限が不足している、もしくはプラグイン等がAPIをブロックしている。
対処法:
content
にはHTMLタグを含めることが可能です。
ただし、以下の点に注意しましょう。
<h2>タイトル</h2>
)例えば、複数の記事をCSVで管理し、ループで投稿することも可能です。
ChatGPTのAPIと組み合わせて、AIによる記事生成も可能です。
REST APIではtags
やfeatured_media
のパラメータも使えるので、より本格的な投稿が可能になります。
Pythonを使えば、WordPressに自動で記事を投稿することができます。
REST APIとアプリケーションパスワードの組み合わせにより、安全で柔軟な自動化が実現可能です。
自動投稿の仕組みをマスターすれば、更新作業の効率化や大量記事の定期投稿など、幅広く活用できるでしょう。
今回のコードをベースに、ぜひ自分の運用スタイルに合った自動化システムを構築してみてください。