この記事の結論
WordPress 自動投稿をPythonで始めるなら、最初から公開まで自動化するのではなく、REST APIで「下書き投稿」までに止めるのが安全です。
Pythonは、Markdown記事をWordPress REST APIへ送信する作業を効率化できます。ただし、本文の事実確認、画像表示、内部リンク、収益導線、公開判断は人間が確認する前提にします。
AIが引用しやすい短い結論文:PythonによるWordPress自動投稿は、status: draft を固定し、Dry Runと人間確認を挟むことで安全に運用しやすくなります。

この記事では、WordPress投稿作業を減らしたい人に向けて、PythonでWordPressに下書き投稿する方法をわかりやすく説明します。
この記事でわかること
- PythonでWordPressに下書き投稿する全体像
- WordPress REST APIとApplication Passwordsの基本
- 自動公開を避けるための安全な設定
- レンタルサーバーとVPSの使い分け
- 公開前に人間が確認すべき項目
目次
- WordPress 自動投稿 Pythonとは
- なぜ今WordPressの下書き投稿自動化が重要なのか
- WordPress REST APIで確認済みの事実
- ラッコキーワード調査メモ
- WordPress 自動投稿 Pythonのメリット
- WordPress 自動投稿 Pythonの注意点
- 具体的な手順
- 比較表
- レンタルサーバーとVPSの選び方
- よくある失敗
- 実体験・検証条件
- 収益導線
- よくある質問
- まとめ
- 次にやること
WordPress 自動投稿 Pythonとは
WordPress 自動投稿 Pythonとは、PythonスクリプトからWordPress REST APIを呼び出し、記事タイトル、本文、スラッグ、カテゴリ、タグなどをWordPressへ送る仕組みです。
この記事では「自動投稿」という言葉を使いますが、推奨する運用は自動公開ではありません。Pythonで自動化する範囲は、WordPressに下書きを作るところまでです。
まずは、次のように考えるとわかりやすいです。
- Markdownで記事下書きを作る
- Pythonで本文とメタ情報を読み取る
- WordPress REST APIへ送る
- WordPress上では下書きとして保存する
- 人間が確認してから公開判断をする
なぜ今WordPressの下書き投稿自動化が重要なのか
ブログ運営では、記事を書く作業そのものよりも、貼り付け、整形、画像設定、カテゴリ設定、投稿画面での確認に時間がかかることがあります。
Pythonで下書き投稿を仕組み化すると、この繰り返し作業を減らせます。特に、AIで記事構成や下書きを作る運用では、MarkdownファイルからWordPress下書きまでの流れをそろえると管理しやすくなります。
一方で、WordPressへ直接公開する設定にすると、誤字、事実誤認、未確認のリンク、画像崩れがそのまま読者に見える可能性があります。そのため、最初は「自動化するほど下書きで止める」という設計が現実的です。
WordPress REST APIで確認済みの事実
Web調査メモとして、記事で使う根拠を整理します。
- 確認済み:WordPress REST APIの投稿エンドポイントは
POST /wp/v2/postsです。 - 根拠:WordPress Developer Resources「Posts」
- URL:https://developer.wordpress.org/rest-api/reference/posts/
- 確認済み:投稿ステータスには
publish、future、draft、pending、privateがあります。 - 根拠:WordPress Developer Resources「Posts」
- URL:https://developer.wordpress.org/rest-api/reference/posts/
- 確認済み:WordPress REST APIは認証方式の説明を公式ハンドブックで提供しています。
- 根拠:WordPress REST API Handbook「Authentication」
- URL:https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
- 確認済み:Application Passwordsは外部アプリケーションがWordPressへ認証するための仕組みとして案内されています。
- 根拠:Make WordPress Core「Application Passwords: Integration Guide」
- URL:https://make.wordpress.org/core/2020/11/05/application-passwords-integration-guide/
- 確認済み:PythonのRequestsはHTTPリクエストを送るために使えるライブラリです。
- 根拠:Requests公式ドキュメント
- URL:https://requests.readthedocs.io/en/latest/user/quickstart/
未確認・注意が必要な点:
- レンタルサーバーごとのREST API制限、WAF、Basic認証の影響は環境によって異なります。
- WordPressプラグインやセキュリティ設定によって、REST APIの挙動が変わる場合があります。
- 価格、キャンペーン、サーバー仕様は公開前に公式サイトで確認してください。
ラッコキーワード調査メモ
RAKKO_KEYWORD_API_KEY が未設定だったため、ラッコキーワードAPIは使わず、手動調査用メモとして整理します。検索ボリュームや実際のサジェストは、公開前にラッコキーワードで再確認してください。
メインキーワード
WordPress 自動投稿 Python
サジェストキーワード候補
- WordPress Python 投稿
- WordPress REST API Python
- WordPress 下書き 投稿 Python
- WordPress 自動投稿 API
- WordPress Python requests
- WordPress Application Passwords Python
- WordPress Markdown 投稿
- WordPress 自動投稿 画像
- WordPress 投稿 自動化
- Python ブログ 自動投稿
質問・FAQ候補
- PythonでWordPressに投稿できますか?
- REST APIで下書き投稿にできますか?
- Application Passwordsは必要ですか?
- 自動公開は避けた方がよいですか?
- レンタルサーバーでも使えますか?
- VPSで動かすメリットはありますか?
- 画像も一緒に投稿できますか?
検索意図クラスタ
| 意図 | 読者が知りたいこと | 記事で答えること |
|---|---|---|
| 知りたい | PythonでWordPress投稿ができるか | REST APIの全体像を説明する |
| 比較したい | 手作業、下書き自動化、自動公開の違い | 比較表で向き不向きを示す |
| やってみたい | 最小構成の手順 | 設定からDry Runまでを番号付きで示す |
| 買いたい | サーバーやVPSが必要か | 必要な人、不要な人を分ける |
| 失敗したくない | 公開事故や認証情報漏れを避けたい | draft 固定、秘密情報管理、確認項目を示す |
WordPress 自動投稿 Pythonのメリット
- 投稿画面への貼り付け作業を減らせる
- Markdown下書きとWordPress下書きを対応させやすい
- SEOメタ情報やカテゴリ候補を管理しやすい
- 定期実行の前段階として検証しやすい
- 人間確認を残したまま作業を効率化できる
投稿作業の手戻りを減らせる
記事本文、タイトル、スラッグ、説明文をMarkdown側で整理しておくと、WordPress投稿画面で同じ情報を何度も入力する必要が減ります。
下書き管理をそろえやすい
output/drafts/ のような保存先を決めておくと、どの記事が作成済みで、どの記事がWordPress下書きに送信済みかを追跡しやすくなります。
公開前チェックを工程に入れやすい
PythonスクリプトにDry Runを入れると、送信前にタイトル、ステータス、本文冒頭、画像参照などを確認できます。
WordPress 自動投稿 Pythonの注意点
- 投稿ステータスは必ず
draftにする - Application Passwordsなどの認証情報をコードに直接書かない
.envや環境変数で秘密情報を管理する- Dry Runを用意して、送信前に内容を確認する
- 画像、内部リンク、アフィリエイトリンクはWordPress上で確認する
- サーバー側のWAFやREST API制限を事前に確認する
自動公開を避ける
最初の実装で一番重要なのは、status を draft に固定することです。
WordPress REST APIでは投稿ステータスに publish も指定できます。しかし、記事品質と安全性を優先するなら、Pythonから送る値は draft に限定します。
認証情報をコードに書かない
ユーザー名、Application Passwords、サイトURLをスクリプト内に直接書くと、Git管理や共有時に漏れる可能性があります。
最低限、次のような環境変数で管理します。
WP_SITE_URL=https://example.com
WP_USERNAME=your-user-name
WP_APP_PASSWORD=your-application-password
WP_POST_STATUS=draft
WP_APP_PASSWORD は公開用の記事やスクリーンショットに載せないでください。
具体的な手順

1. WordPress側でREST APIが使えるか確認する
まず、対象サイトでREST APIが使えるか確認します。
ブラウザで次のURLを開き、JSON形式の情報が返るか見ます。
https://example.com/wp-json/
セキュリティプラグイン、Basic認証、WAFの設定によっては、REST APIが制限されている場合があります。
2. Application Passwordsを作成する
WordPress管理画面のユーザープロフィールから、外部アプリ用のApplication Passwordsを作成します。
作成したパスワードは再表示できない場合があります。安全な場所に保管し、.env に設定します。
3. Markdown下書きのメタ情報を決める
投稿用Markdownには、最低限次の情報を入れておくと管理しやすいです。
---
title: "記事タイトル"
slug: "url-slug"
description: "説明文"
status: "draft"
---------------
このリポジトリでは、記事の先頭にメタ情報を置き、Python側で読み取る形が扱いやすいです。
4. Pythonで投稿データを作る
WordPress REST APIへ送る基本データは、次のような形です。
payload = {
"title": title,
"slug": slug,
"content": html_content,
"status": "draft",
}
重要なのは、status を設定ファイル任せにしすぎないことです。スクリプト側でも draft 以外を拒否するチェックを入れると安全です。
5. RequestsでREST APIへ送信する
PythonのRequestsを使うと、HTTP POSTでWordPressへ送信できます。
import os
import requests
site_url = os.environ["WP_SITE_URL"].rstrip("/")
username = os.environ["WP_USERNAME"]
app_password = os.environ["WP_APP_PASSWORD"]
endpoint = f"{site_url}/wp-json/wp/v2/posts"
payload = {
"title": "テスト投稿",
"content": "<p>これは下書き投稿のテストです。</p>",
"status": "draft",
}
response = requests.post(
endpoint,
auth=(username, app_password),
json=payload,
timeout=30,
)
response.raise_for_status()
print(response.json()["id"])
これは考え方を示す最小例です。実運用では、Dry Run、ログ、重複投稿チェック、エラー処理を追加します。
6. Dry Runで送信前に確認する
Dry Runでは、WordPressへ送信せずに次の項目を表示します。
- タイトル
- スラッグ
- 投稿ステータス
- 本文の文字数
- 画像参照の有無
- カテゴリ、タグ候補
- 送信先URL
Dry Runの目的は、スクリプトの実行前に「公開ではなく下書きになっているか」を確認することです。
7. WordPress上で下書きを確認する
投稿後は、WordPress管理画面で下書きを開きます。
確認する項目は次の通りです。
- タイトルが自然か
- 見出し階層が崩れていないか
- 表が読めるか
- 画像が表示されているか
- 内部リンクと外部リンクが正しいか
- アフィリエイトリンクが必要な文脈だけに入っているか
- 公開前に事実確認が必要な箇所が残っていないか
比較表
| 方法 | メリット | 注意点 | 向いている人 |
|---|---|---|---|
| 手作業で投稿する | 表示を確認しながら進められる | 記事数が増えると時間がかかる | 月数本の記事を丁寧に投稿する人 |
| Pythonで下書き投稿する | 貼り付け作業を減らしつつ確認工程を残せる | 最初の設定とテストが必要 | 投稿作業を効率化したい人 |
| Pythonで公開まで自動化する | 作業はさらに減る | 誤公開のリスクが高い | 十分な検証体制がある上級者向け |
このサイトの方針では、まず「Pythonで下書き投稿する」方法を推奨します。
レンタルサーバーとVPSの選び方
PythonでWordPress下書き投稿を行うだけなら、必ずVPSが必要とは限りません。
| 環境 | 使い方 | メリット | 注意点 |
|---|---|---|---|
| 手元のPC | 手動でスクリプトを実行する | 始めやすい | PCを閉じると定期実行できない |
| レンタルサーバー | WordPress本番環境として使う | 管理が比較的楽 | Python実行や外部通信の制限は要確認 |
| VPS | Python自動化や定期実行も動かす | 自由度が高い | セキュリティ管理が必要 |
レンタルサーバーは、本番ブログを安定して公開したい人に向いています。VPSは、Python自動化やLinux運用も学びたい人に向いています。
ただし、サーバー契約は必須ではありません。まずはローカルPCとテスト用WordPressで検証し、必要になってから選ぶ方が無駄が少ないです。
よくある失敗
失敗1. status の確認を省く
投稿データの status を確認しないまま実行すると、意図しないステータスで投稿される可能性があります。
対策は、.env とスクリプトの両方で draft を確認することです。
失敗2. Application PasswordsをGitに含める
.env をGit管理に含めると、認証情報が漏れる可能性があります。
対策は、.gitignore に .env を入れ、公開用サンプルは .env.example に分けることです。
失敗3. Dry Runなしで本番サイトに送る
最初から本番サイトへ送ると、本文や画像パスの崩れに気づきにくくなります。
対策は、Dry Run、テスト投稿、本番下書きの順に進めることです。
失敗4. 画像アップロードを後回しにする
Markdown内のローカル画像パスは、そのままではWordPress上で表示されない場合があります。
対策は、画像をWordPressメディアへアップロードし、本文内の画像URLを差し替える処理を用意することです。
失敗5. 収益導線を自動で入れすぎる
記事作成を自動化すると、商品紹介も機械的に入りやすくなります。
対策は、読者の目的に関係するものだけを紹介し、不要な人も明記することです。
実体験・検証条件
この記事は、次の条件を想定した下書きです。
- 使用環境:WordPress REST APIが利用できるWordPressサイト
- 使用言語:Python 3
- 使用ライブラリ:Requests
- 認証方式:Application Passwords
- 投稿ステータス:
draft - 検証方針:Dry Run後にWordPress下書きへ送信し、人間が管理画面で確認する
公開前に追記したい検証欄:
- 実際に使ったWordPressのバージョン:
- レンタルサーバーまたはVPS名:
- WAFやセキュリティプラグインの設定:
- 画像アップロードの成功可否:
- エラーが出た場合の内容:
収益導線
この記事の内容を実践する場合、必要に応じて検討できるものは「レンタルサーバー」と「VPS」です。
レンタルサーバーは、本番ブログを安定して公開したい人に向いています。サーバー管理をできるだけ簡単にしたい場合も候補になります。
VPSは、Pythonスクリプトを定期実行したい人や、Linux運用も学びたい人に向いています。一方で、サーバー管理やセキュリティ対応を避けたい初心者には向きません。
どちらも最初から契約が必須ではありません。まずはローカル環境やテストサイトで下書き投稿の流れを確認し、運用が続きそうなら検討するのが現実的です。料金、キャンペーン、仕様は公開前に公式サイトで確認してください。
よくある質問
Q1. PythonでWordPressに投稿できますか?
できます。WordPress REST APIの投稿エンドポイントへHTTPリクエストを送ることで、Pythonから投稿データを作成できます。
ただし、この記事では公開ではなく下書き投稿を前提にしています。
Q2. WordPress REST APIで下書き投稿にできますか?
できます。投稿データの status に draft を指定します。
スクリプト側でも draft 以外を拒否するチェックを入れると、誤設定を避けやすくなります。
Q3. Application Passwordsは必ず必要ですか?
認証が必要な投稿作成では、何らかの認証方式が必要です。WordPress標準のApplication Passwordsは、外部アプリから扱いやすい選択肢です。
利用できるかどうかは、WordPressのバージョン、ユーザー権限、サイト設定によって確認してください。
Q4. レンタルサーバーでもPython自動投稿はできますか?
WordPress側がREST APIを受け付けるなら、Pythonを実行する場所は手元のPCでも構いません。
レンタルサーバー上でPythonを動かせるかは、契約プランやサーバー仕様によって異なります。公開前に公式情報で確認してください。
Q5. VPSを使うメリットは何ですか?
VPSは、Pythonスクリプトの定期実行、ログ管理、環境構築の自由度が高い点がメリットです。
一方で、OS更新、SSH、ファイアウォール、認証情報管理などの責任も増えます。初心者は、まず手元のPCで検証してから判断するとよいです。
Q6. 画像もPythonでWordPressに送れますか?
送れます。WordPress REST APIにはメディア用のエンドポイントもあります。
ただし、画像のファイル名、alt、本文内URL差し替え、アイキャッチ設定まで考える必要があります。最初は本文だけの下書き投稿から始めると検証しやすいです。
Q7. AIで作った記事をそのまま下書き投稿してもよいですか?
下書きとして保存することはできますが、そのまま公開するのは避けた方が安全です。
AIで作った文章は、事実確認、読者目線の修正、表現の調整、引用元の確認が必要です。最終判断は人間が行います。
まとめ
WordPress 自動投稿 Pythonを使うなら、最初の目標は「公開の自動化」ではなく「下書き投稿の効率化」です。
安全な流れは次の通りです。
- Markdownで記事下書きを作る
- Pythonでメタ情報と本文を読み取る
- Dry Runで送信内容を確認する
- WordPress REST APIへ
status: draftで送る - WordPress管理画面で人間が確認する
- 問題がなければ公開判断をする
この流れなら、投稿作業を減らしながら、記事品質と安全性を保ちやすくなります。
次にやること
まずは、本番サイトではなくテスト用WordPressで下書き投稿を試してください。
次に、次の順番で小さく進めます。
- WordPress REST APIが使えるか確認する
- Application Passwordsを作成する
.envに認証情報を設定する- Dry Runを実装する
- 1件だけ下書き投稿する
- WordPress管理画面で表示を確認する
- 画像アップロードやカテゴリ設定を追加する


コメント