こんにちはミナピピンです。今回はワードプレスのAPIを使って記事の更新(タイトルやカテゴリーの変更)を自動化するスクリプトを作ったので、その一部をメモ代わりに記事にしておきます。誰かの参考になれば幸いです。
前準備
まず自分のブログをAPIから更新するためにはapplicationpasswordというプラグインを自分ブログにインストールして、認証情報となるAPI鍵を作成する必要があります。詳しくは下記記事で解説していますので参考にしてください
参照記事:【Python】WordPressのREST APIを使ってブログに記事を自動投稿する
ワードプレスのAPIでブログ記事更新の自動化を行う
import requests # 記事を更新する関数 def wp_update_post(unique_id, changed_title, ids=None, media_id=None): url_base = 'https://anime-news.net' url = f'{url_base}/wp-json/wp/v2/posts/{unique_id}' # WordPress接続情報 user = 'xxx' # ユーザー名 password = 'xxxx xxxx xxxx xxxx xxxx xxxx' # アプリケーションパスワードで発行したパスワード params = { 'title': changed_title, 'categories':ids, 'featured_media':media_id } res = requests.post( url, params=params, auth=(user, password), ) return res # 関数を実行 wp_update_post(80251, '更新したい投稿タイトル', [1], 1)
指定しない要素については更新されずそのままの状態が反映されます。また画像のIDは管理画面のメディアからアップロードした画像を個別に開いた際にURLにあるpost=xxxxの部分の数値が対応しています。
カテゴリーのIDの確認方法は→ 【Python】ワードプレスのAPIを使って特定のブログ内のカテゴリー名・カテゴリーIDを自動取得 の記事にて解説しています。
記事の内容やスラッグを変更したい場合はparams= の部分に対応するパラメーターを追加すればよいです。他のパラメーターについては公式ドキュメントを参照してください↓
APIドキュメント:https://developer.wordpress.org/rest-api/reference/posts/#update-a-post
関連記事:【Python】ワードプレスのサイトの記事一覧をAPIで自動取得する
関連記事:【Python】ワードプレスのREST APIを使って画像アップロードを自動化する
関連記事:【Python】WordPressのREST APIを使ってブログに記事を自動投稿する
参考:https://kamiki.blog/wordpress-api-update-posts-in-python/
コメント