【Python】(自作キリンツールへの道) WordPressへの自動投稿:WordPress REST APIを使用した投稿とサムネイルの自動アップロード

Pytyon

合わせて読みたい記事

参考書籍

業務効率化に向けたおすすめの参考書になります。

WordPress REST APIを使用した投稿とサムネイルの自動アップロード

ブログ運営をもっと効率的にしたい、そんなあなたにピッタリの方法があります。PythonとWordPress REST APIを組み合わせることで、記事の投稿と同時にサムネイルも自動でアップロードすることが可能です。この記事では、その具体的な手順を初心者にもわかりやすく解説します。

事前準備

始める前に、Pythonのrequestsライブラリをインストールしておく必要があります。未インストールの場合は、以下のコマンドで簡単にインストールできます。

pip install requests

ステップ 1: メディアをアップロードする

まず、投稿に使用する画像をWordPressのメディアライブラリにアップロードします。以下のPythonスクリプトを使用して、画像をアップロードできます。


import requests

# WordPressの設定
media_url = 'http://yourwordpresssite.com/wp-json/wp/v2/media'
user = 'your_username'
password = 'your_application_password'
credentials = (user, password)

# アップロードする画像のパス
image_path = 'path/to/your/image.jpg'
image_name = 'image.jpg'

# メディアをアップロード
headers = {
    'Content-Disposition': f'attachment; filename={image_name}',
    'Content-Type': 'image/jpeg',  # 画像のタイプに応じて変更
}

with open(image_path, 'rb') as img:
    response = requests.post(media_url, auth=credentials, headers=headers, data=img)

# アップロードしたメディアのIDを取得
if response.status_code == 201:
    media_id = response.json()['id']
    print(f'Media was successfully uploaded with ID: {media_id}')
else:
    print(f'Failed to upload media. Status code: {response.status_code} - {response.text}')
        

ステップ 2: 投稿を作成し、サムネイルを設定する

次に、新しい投稿を作成し、先ほどアップロードした画像をサムネイルとして設定します。以下のスクリプトでは、アップロードしたメディアのIDを使用して、投稿にサムネイルを設定しています。


# 投稿データ
post_data = {
    'title': 'Post with Featured Image',
    'content': 'This is a post that has a featured image.',
    'status': 'publish',
    'featured_media': media_id  # アップロードしたメディアのID
}

# 新しい投稿を作成
post_response = requests.post(url, auth=credentials, json=post_data)

# 結果を確認
if post_response.status_code == 201:
    print('Post with featured image was successfully created.')
else:
    print(f'Failed to create post. Status code: {post_response.status_code} - {post_response.text}')
        

まとめ

この方法を使えば、記事の投稿とサムネイルの設定を一度に自動化できます。もう面倒な手作業に時間を費やす必要はありません。ただし、実際のサイト名、ユーザー名、パスワード、画像パスは適宜変更してください。安全な通信のためにHTTPSを使用し、パスワードは安全に管理しましょう。

コメント

タイトルとURLをコピーしました