はじめに
PythonでWordPressを操作してブログ記事を自動投稿できるようになりましたが、
投稿された記事のヘッダー画像(アイキャッチ画像)が「No Image」になってしまう問題がありました。
そこで今回は、PythonからWordPressのREST APIを使って、記事にヘッダー画像を設定する方法を学びました。
解決方法:featured_media
を使う
WordPressのREST APIで記事を投稿する際、ヘッダー画像(アイキャッチ画像)を指定するには、featured_media
を使います。
このパラメータに、画像のID(=メディアID)を指定することで、画像が正しく表示されます。
実際のコード例
記事を投稿するデータの定義部分に、以下のように記述します:
post_data = {
'title': 'Hello,World!',
'content': "<p>テストです。</p><p>HTMLカスタムの内容です。</p>",
'slug': 'python-post-test',
'categories': [category_id], # 記事に割り当てるカテゴリID
'status': 'draft', # 「下書き」。公開したい場合は "publish"
'featured_media': 4220 # ← ここが重要!画像IDを指定
}
ポイントは、最後の'featured_media': 4220
の部分です。
このIDが、使用したい画像(メディア)のIDになります。
画像IDの調べ方
画像のIDは、WordPressの管理画面から簡単に確認できます。
手順:
- WordPressにログイン
- 左メニューから「メディア」→「ライブラリ」を開く
- ヘッダーに使いたい画像をクリック
- URLを確認
例:
https://yourdomain.com/wp-admin/post.php?post=99999&action=edit
post=99999
の99999
が画像のIDです
注意点:画像は事前にアップロードが必要
PythonのREST APIでは、記事に画像IDを指定することはできますが、画像のアップロード自体は別手順になります。
画像を使う前に、管理画面やFTPなどを使って画像をあらかじめアップロードしておく必要があります。
まとめ
PythonからWordPressの記事投稿時に「ヘッダー画像(アイキャッチ画像)」を設定したい場合は、featured_media
を使って、画像IDを指定するだけで実現できます。
ポイント:
featured_media
にメディアIDを指定- メディアIDは管理画面のURLから取得可能
- 画像は事前にアップロードしておくこと
投稿された記事に自動で画像がつくことで、見た目の印象が大きく変わるため、
記事自動投稿を行っている方は、ぜひ活用してみてください。