開発しているプロジェクトで、関連Wordpressの記事のタイトルやアイキャッチ画像のサムネイルをWordpress公式のREST APIから取得する、という処理をしています。
画像情報の取得の流れ
Wordpress記事のAPIは、例えば「 https://hoge.com 」というサイトの場合、以下のURLで公開されています。
https://hoge.com/wp-json/wp/v2/posts/記事番号
参考:https://developer.wordpress.org/rest-api/reference/posts/
で、ここにアクセスするとさまざまな記事に関する情報が確認できるのですが、この中の「featured_media」にセットされている数字。(ちなみにfirefoxだと、画像のように綺麗に整形されてるのでおすすめ!)

この数字を使い、
https://hoge.com/wp-json/wp/v2/media/数字
にアクセスすると、その画像情報にアクセスできます!(前述の画像の場合は9)
ここにある「link」に記載されているURLにアクセスすると、そのwordpressでセットされたアイキャッチ画像にアクセスできます。

参考:https://developer.wordpress.org/rest-api/reference/media/
何が起きたか
プログラムで、サムネイル画像が取得できないケースがありました。
処理の流れ
サービス上で、記事番号を入力するとそのPOSTのAPIを取得
→featured_mediaの番号をもとに、サムネイル画像を取得するためmediaのAPIにアクセス
→そこからアイキャッチ画像をサムネイルとして取得
→ところが、その画像が記事によっては取得できないケースがある
→調査の結果、media APIにアクセスすると401でアクセスできていないことがわかった
「状態」
・記事自体は公開中
・Wordpress本体の中では、その記事のサムネイル画像はきちんと表示できている
・だが、記事で使っているmedia画像のAPIはアクセスできない状態
結果
いろいろ調査、検証の結果、
「Wordpressのアイキャッチ画像は、その画像が投稿された時の記事の公開ステータスに紐づく」ということがわかりました。
※直接的な名言は以下の記事にありました。
https://norday.tech/posts/2024/permission-problem-with-featured-media/
なので、
[1]記事Aの投稿時に、アイキャッチ画像「a」をセット
[2]その後、記事Bでもその画像「a」を利用。
[3]記事Aを非公開or削除
[4]記事Bは公開されているが、その中の画像「a」のmedia APIは非公開となりアクセスできない
・・・という流れでした。
対処方法
こうなると、画像をどこかに紐付けると非常に使いづらくなります。
で、「メディアアップロード」から画像をアップすればその画像はどこにも紐づかないということもわかりました。
メディアアップロードからアップし、後から記事の編集画面で、アイキャッチ画像としてセットすればokです!


