はじめに:PythonでWordPress自動投稿ができるとできること
ブログ運営をしていると、記事の投稿作業を毎回手動で行うのは意外と手間がかかります。特に複数の記事を定期的に投稿したい場合や、他システムで生成したコンテンツをWordPressに反映させたい場合には、自動化の仕組みがあると非常に便利です。
実は、WordPressには標準で「REST API」という機能が搭載されており、これを使うことでPythonのプログラムから直接記事を投稿することができます。難しいプラグインの導入や特別なサーバー設定は不要で、WordPress本体の機能とPythonの基本的なライブラリだけで実現可能です。
この記事では、初心者の方でも迷わずに進められるよう、事前準備からPythonでの実装方法まで、順を追って解説していきます。
事前準備:WordPress側で必要な設定
Pythonから記事を投稿するためには、まずWordPress側でいくつかの準備が必要です。特別なプラグインをインストールする必要はなく、WordPress本体に標準搭載されている機能だけで対応できます。
最も重要なのが「アプリケーションパスワード」の発行です。これはWordPress 5.6以降に標準搭載されている機能で、通常のログインパスワードとは別に、外部プログラムからのアクセス専用のパスワードを発行できる仕組みです。セキュリティ面でも安心して利用できます。
設定手順は以下の通りです。
1. WordPress管理画面にログインし、「ユーザー」→「プロフィール」を開きます。
2. ページ下部にある「アプリケーションパスワード」の欄に、任意の名前(例:python-post)を入力します。
3. 「新しいアプリケーションパスワードを追加」ボタンをクリックすると、パスワードが自動生成されます。
4. 表示されたパスワードは一度しか表示されないため、必ずメモしておきましょう。
この「ユーザー名」と「アプリケーションパスワード」の組み合わせが、これから作成するPythonプログラムから認証を行う際に必要になります。あわせて、投稿先のWordPressサイトのURL(例:https://example.com)も確認しておいてください。
Pythonでの実装方法:requestsライブラリを使った投稿
WordPress側の準備が整ったら、いよいよPythonのコードを書いていきます。今回使用するのは、Pythonで最も広く使われているHTTP通信用ライブラリ「requests」です。標準ライブラリではないため、事前にインストールしておく必要があります。
ターミナルやコマンドプロンプトで以下のコマンドを実行してください。
pip install requests
インストールが完了したら、以下のようなコードで記事を投稿できます。WordPressのREST APIでは、投稿用のエンドポイントとして「/wp-json/wp/v2/posts」が用意されており、ここにPOSTリクエストを送ることで新規記事を作成できます。
import requests
# WordPressサイトの情報
url = "https://example.com/wp-json/wp/v2/posts"
username = "your_username"
app_password = "xxxx xxxx xxxx xxxx xxxx xxxx"
# 投稿する記事の内容
data = {
"title": "Pythonから投稿したテスト記事",
"content": "これはPythonのrequestsライブラリを使って自動投稿した記事です。",
"status": "publish" # 下書きにしたい場合は "draft"
}
# リクエストの送信
response = requests.post(
url,
json=data,
auth=(username, app_password)
)
# 結果の確認
if response.status_code == 201:
print("記事の投稿に成功しました。")
else:
print("投稿に失敗しました。ステータスコード:", response.status_code)
print(response.text)
コード内の「auth」パラメータに、先ほど取得したユーザー名とアプリケーションパスワードを指定することで、WordPressに対して認証付きのリクエストを送ることができます。「status」を「publish」にすると即座に公開され、「draft」にすると下書きとして保存されます。最初はdraftで試してみて、問題なく動作することを確認してから公開設定に切り替えるのがおすすめです。
レスポンスのステータスコードが201であれば、投稿が正常に作成されたことを意味します。エラーが発生した場合は、response.textの内容を確認することで、原因(認証情報の誤りやURLの間違いなど)を特定しやすくなります。
まとめ
今回は、Pythonを使ってWordPressに記事を自動投稿する方法について解説しました。ポイントを振り返ると、まずWordPress管理画面でアプリケーションパスワードを発行し、次にPythonのrequestsライブラリを使ってREST APIにデータを送信する、という流れになります。
特別なプラグインや複雑な設定を必要とせず、WordPress標準機能とPythonの基本的なコードだけで実現できる点は、初心者にとって取り組みやすいポイントです。まずは下書き状態での投稿を試し、動作に慣れてきたら公開設定や画像のアップロードなど、より発展的な機能にも挑戦してみてください。
自動投稿の仕組みを一度作ってしまえば、日々の記事投稿作業を大幅に効率化できます。ぜひこの記事を参考に、実際に手を動かして試してみてください。
\ 高速WordPress環境を構築するなら /
