👌

WP REST APIを使いGASで画像を更新する方法

2023/02/19に公開

Amazon | [Amazon限定ブランド]CCL い・ろ・は・す 2LPET ×8本 | CCL | ミネラルウォーター 通販
Amazon.co.jp: トライエックス 2023年 林田百加 カレンダー CL-222 壁掛け B2 : 文房具・オフィス用品
まだハタチ、もう二十歳。 | なえなの | タレント写真集 | Kindleストア | Amazon

WP REST APIを使いGASで画像を更新する

ちょっとWordPressのwprestapiで画像の更新をしたいことがあり、いろいろ調べていたらできるようになったのでその方法を紹介したいと思います。というのもwprestapiを使って記事の投稿や画像の投稿を行うことはできたのですが画像を記事に紐づけすることができずにこまっていました。

紐づけとはつまりattachmentですよね。まあ別に記事に紐づけなくてもアップロードされた画像のurlなどがわかれば画像は使えるのですが、どうしても記事に画像を紐づけ(添付)したいって人もなかにはいるかもしれません。自分みたいに。

WP REST APIの画像更新で画像を記事に紐づけすることができる

まず知識として知っておかなければならないのは以下のリファレンスですね。

メディア | REST API ハンドブック | WordPress 開発者リソース

それで上記の画像更新の引数に「post」という引数があります。postという引数は記事のIDを整数でというようになっていますので、記事のIDと画像のIDがわかればあとはコードを書けばこれで画像を記事に紐づけすることができるようになります。

WP REST APIで画像を記事に紐づけするサンプルコード

function test(){
    let siteUrl = 'サイトurl';
    let apiUrl = siteUrl + 'wp-json/wp/v2/media/画像のid';
    let user = 'ユーザー名';
    let pass = 'アプリケーションパスワード';
    let headers = {
       'Content-Type': 'application/json',
        'Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass)
    };
    let arguments = {
        'post': 記事のID(整数)
    };
    let options = {
        'method': 'POST',
        'muteHttpExceptions': true,
        'headers': headers,
        'payload': JSON.stringify(arguments)
    };

    let response = UrlFetchApp.fetch(apiUrl, options);
    let responseJson = JSON.parse(response.getContentText());
    console.log(responseJson)
    return responseJson;
}

上記のコードで画像の更新を行うことができます。ただこのサンプルをどのようにして応用させていくかは自分で考える必要があると思います。ポイントはとくにありませんがargumentsのpost引数の値は整数でなければならないということです(整数じゃなくてもいけるかもしれません。ためしてないのでわかりません)

画像のidや記事のidはwordpress管理画面で記事や画像を開くとわかりますが、wp rest apiをつかって画像や記事を投稿したときのresponseとしてidを取得することができます。

ちなみに今回はwp rest apiを使った画像の更新でしたが、画像を普通に投稿するときもpost引数が使えます。つまりあらかじめ記事があれば画像投稿のapiで紐づけをすることができるということになりますが、このあたりは自分のやりたいことにコードの設計をする必要があると思います。
中川翔子写真集 ミラクルミライ | 中川翔子, 中村和孝 | タレント写真集 | Kindleストア | Amazon
Amazon | トライエックス 2023年 本田望結 カレンダー CL-204 壁掛け B2 | カレンダー | 文房具・オフィス用品
本田望結 Emotional スピ/サン グラビアフォトブック | 本田望結, 阿部ちづる | タレント写真集 | Kindleストア | Amazon

Discussion