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固定ページ自動投稿テスト(改)
