投稿や固定ページを自動で作成する方法を探していて、見つけたのがこのサイトまさまゆブログ

WP REST API

正直なんなのかチンプンカンプン、少しだけ分かったことは。
1.WordPressのデータベースの情報をJSON形式で取得できるAPIのこと。
2.WordPressのあるサーバーとは別サイトから記事などの表示・操作ができる。
3.PHP以外のプログラミング言語でWordPressのデータの取得と操作できるようになる。
例えばpython?
4.JSON形式でデータを取得するには次のURLにアクセスすれば良い。
http://raspberrypi/wp-json/wp/v2/posts
実際には、このURLでJSONデータを取得できなかったので、前回のパーマリンク設定が動いていないことに気付いたのだが。
まあ、JSONって何、python?の状態なので、不安だらけだが、php+MariaDBよりも楽ができると信じて進むことに。

アプリケーションパスワード

参考サイトに従い、「Application Passwords plugin」をインストール。
WordPressの管理画面で「ユーザ」をクリックする。
管理者の「ユーザ名」をクリックし、プロフィール画面を開く。
プロフィール画面の「アプリケーションパスワード」ブロックの新しいアプリケーションパスワード名の入力欄に「ユーザ名」を入力し、「新しいアプリケーションパスワードを追加」ボタンをクリックする。
「アプリケーションパスワード」用のユーザ名に対応したパスワードが作成され、ポップアップで表示されるので、控えることを忘れずに。 忘れても再度パスワードを作成すれば良いだけだが。
尚、プラグインの不具合なのか、日本語と英語の「アプリケーションパスワード」が両方表示されていて混乱。 取り合えず上段の日本語を使用してパスワードを作成した。

pythonによる自動投稿

 実際にThonnyを使用して、自動投稿を行ってみた。 参考にしたのは次のサイト、【Python】「WordPressで記事の自動投稿できるようになる」
 ついでに、csvファイルからデータを読み込んで、複数の固定ページを自動作成するように
改造してみた。 データは、趣味の野鳥撮影用に作成したリストから野鳥の名前、学名、撮影場所、時期を抜粋したもの。

# WordPressの自動投稿
import requests
import urllib.parse

from datetime import datetime

import csv

# WordPress接続情報
WP_URL = 'http://raspberrypi'
WP_USERNAME = 'tako'
WP_PASSWORD = '**** **** **** **** **** ****'

# WordPress新規投稿関数
def post_article(status, slug, title, content, category_ids, tag_ids, media_id):

    # REST APIを使うための認証情報
    user_ = WP_USERNAME
    pass_ = WP_PASSWORD
    
    # 投稿記事情報
    payload = {"status": status,                    #ステータス 公開:publish, 下書き:draft
              "slug": slug,                         #URLスラッグ
              "title": title,                       #タイトル
              "content": content,                   #内容
              "date": datetime.now().isoformat(),   #投稿日時
              "categories": category_ids,           #カテゴリー
              "tags": tag_ids,                      #タグ
              "parent": parent                      #parent
              }                      
    if media_id is not None:
        payload['featured_media'] = media_id         #アイキャッチ画像

   # 記事の新規投稿を行う
    res = requests.post(urllib.parse.urljoin(WP_URL, "wp-json/wp/v2/pages"),     #"wp-json/wp/v2/posts"にPostすると新規投稿になる
                       json=payload,                                            #投稿する記事の内容を設定する
                       auth=(user_, pass_))
    
    #ユーザ、パスワードを設定する
    print('----------\n件名:「{}」の投稿リクエスト結果:{} res.status: {}'.format(title, res, repr(res.status_code)))

    return res

with open ('sublist11.csv' , 'r' ) as f :    # ’r’=読み込み
   reader = csv . reader ( f )
   for line in reader :
      slug = line[0]                          # slug 和名
      title = slug                            # title 和名
      ename = line[1]                         # ename 英名
      lname = line[2]                         # lname 学名 ラテン語
      jenc = urllib.parse.quote(title)        # urlエンコード
      parent = line[3]                        # 親
      place = line[4]                         # 撮影場所
      season  = line[5]                       # 撮影時期

      jref = '<a href="https://ja.wikipedia.org/wiki/' + jenc + '">' + title + '</a>'
      eref = '<a href="https://en.wikipedia.org/wiki/' + ename + '">' + ename + '</a>'
      lref = '<a href="https://en.wikipedia.org/wiki/' + lname + '">' + lname + '</a>'

      article='<div id="sublist">\r'\
        '<h6>基本事項</h6>\r'\
        '<table><tbody>\r'\
        '<tr>\r'\
        '<th>Wikipedia</th>\r'\
        '<th>(英名)</th>\r'\
        '<th>(学名)</th>\r'\
        '<th>撮影場所</th>\r'\
        '<th>時期</th>\r'\
        '</tr>\r'\
        '<tr>\r'\
        '<td>' + jref + '</td>\r<td>' + eref + '</td>\r<td>' + lref + '</td>\r'\
        '<td>' + place + '</td>\r'\
        '<td>' + season + '</td>\r'\
        '</tr>\r'\
        '</tbody>\r'\
        '</table>\r'\
        '</div>\r'
# 記事を投稿する
      post_article('publish',
             slug,
             title,
             article,
             category_ids=[],
             tag_ids=[],
             media_id=0)

読み込んだsublist11.csvがこちら。 ちなみに38は親のpost_id。

アイスランドカモメ,Iceland Gull,Larus glaucoides,38,銚子,冬
アオシギ,Solitary Snipe,Gallinago solitaria,38,日光,冬

実際に出来た固定ページがこちら。

articleにhtml文をずらずらと書き込んだ恥ずかしい力業、まあやりたいことが何となくできたので良しとすることに。 それにしても自己流なのでこんな使い方しか出来ずお粗末。