画像をメディアへアップロードする処理と、その画像を記事へ表示する処理は別です。ファイルを送れたあとも、返却されたIDとURLを控え、どこで使う画像かを決めます。
WordPressの標準REST APIでは、メディアの作成先はPOST /wp/v2/mediaです。まず検証用サイトに画像1枚を扱う前提で、入力と保存結果を確認します。
アップロード前のファイルと権限
使うユーザーにはメディアをアップロードできる権限が必要です。標準ロールでは寄稿者にその権限はありません。認証が通ることと、画像を追加できることを分けて確認します。
入力ファイルは実体のある画像を用意し、ファイル名、形式、容量、画像の内容を確認します。拡張子だけを変えて別形式に見せないようにしてください。受け付ける形式や容量の制限はサイトやサーバーの設定にも左右されるため、管理画面で扱える条件と照合します。
送信と応答の対応
ファイルを送る方式に合わせて、利用するHTTPライブラリで画像の実データを渡します。テキストのJSONへ画像のパスを書いただけでは、PC上のファイルそのものを送ったことになりません。認証情報は通信の設定へ渡し、原稿や処理ログへ含めません。
| 段階 | 扱うもの | 残す記録 |
|---|---|---|
| 送信前 | 画像ファイルと対象サイト | ファイル名、形式、容量、用途 |
| メディア作成 | POST /wp/v2/mediaへのファイル送信 | HTTPステータスと成功・失敗 |
| 保存結果 | 応答のid、source_url、media_details | 作成されたメディアのIDとURL |
| 説明の設定 | alt_text、caption、description | 画像の役割に合う説明 |
altとキャプションを使い分ける
alt_textは画像の代替テキスト、captionは画像のそばへ表示する説明として使う項目です。装飾だけの画像と、手順や図を伝える画像では、必要な説明が違います。
メディア側の値を直したあとも、記事に挿入済みの画像が同じ内容へ変わるとは決めつけません。公開する本文のimg要素と、画面で表示される説明を確認します。URL、代替テキスト、キャプションを同じ文章にそろえることが目的ではありません。
再送信の前に保存済みか調べる
通信が切れた場合は、アップロードが失敗したのか、保存後に応答を受け取れなかったのかを区別します。結果が不明なまま繰り返すと、同じ画像のメディアが増える可能性があります。
メディア一覧や記録したIDを調べ、今回のファイルがあるかを確認してから再送を判断します。記事へ使う段階では画像URLが開けること、サイズが適切なこと、PCとスマートフォンで内容が読めることまで見ます。この原稿では実際のアップロードや画像の削除は行っていません。
