WordPressの投稿記事に対する自動処理は以下で取り上げました。
PythonでWordPressに記事を自動投稿する PythonでWordPressに投稿された記事の更新をする今回は固定ページにたいする自動処理を実装します。
実装する内容は以下です。
- 固定ページの自動投稿
- 固定ページの検索
- 固定ページを編集と再投稿
WordPressに固定ページを自動投稿する
固定ページを自動投稿します。
参考にするサイトは、REST API Handbook | Create a Page です。
実装コードです。
POST時のURLに /wp/v2/pages/ を使います。
import requests from urllib.parse import urljoin from datetime import datetime def auto_create_page(): url_base = 'https://kamiki.blog/' url = urljoin(url_base, 'wp-json/wp/v2/pages/') user = 'xxx' # ユーザー名 password = 'xxx' # アプリケーションパスワード content = '固定ページの自動投稿テストです。' post = { 'title': 'WordPress固定ページ自動投稿テスト', 'status': 'draft', # draft(下書き), publish(公開) 'slug': 'wordpress-auto-create-a-page', # パーマリンク 'date': datetime.now().isoformat(), 'content': content, } res = requests.post( url, json=post, auth=(user, password), ) return if __name__ == '__main__': auto_create_page()
コードを実行すると、以下のような固定ページがWordPress上にできています。
投稿済みの固定ページを検索し、情報を取得する
固定ページを検索してみます。
上で自動投稿した固定ページを探します。
参考にするサイトは、REST API Handbook | List Pages です。
実装コードです。
タイトルの文字列を検索ワードにして、GETするだけです。
import requests from urllib.parse import urljoin def search_a_page(): url_base = 'https://kamiki.blog/' url = urljoin(url_base, 'wp-json/wp/v2/pages/') user = 'xxx' # ユーザー名 password = 'xxx' # アプリケーションパスワード params = { 'search': 'WordPress固定ページ自動投稿テスト', 'status': 'draft' } res = requests.get( url, params=params, auth=(user, password), ) data = res.json() print('len(data) : ', len(data)) print('id : ', data[0]['id']) print('slug : ', data[0]['slug']) return if __name__ == '__main__': search_a_page()
上記コードを実行すると、コマンドラインに以下のように出力されます。
len(data) : 1 id : 768 slug : wordpress-auto-create-a-page
投稿済みの固定ページを変更して、また自動投稿する
投稿済み固定ページを変更して、再投稿します。
参考にするサイトは、REST API Handbook | Update a Page です。
実装コードです。
上で取得した固定ページIDを使用します。タイトルを変えてみます。
import requests from urllib.parse import urljoin def update_a_page(): # 変更する固定ページのID page_id = 768 url_base = 'https://kamiki.blog/' url = urljoin(url_base, 'wp-json/wp/v2/pages/' + str(page_id)) user = 'xxx' # ユーザー名 password = 'xxx' # アプリケーションパスワード params = { 'title': 'WordPress固定ページ自動投稿テスト(改)', } res = requests.post( url, params=params, auth=(user, password), ) return if __name__ == '__main__': update_a_page()
コードを実行すると、固定ページのタイトルを変更できました。
以下が変更後の固定ページです。
WordPress固定ページ自動投稿テスト(改)