Help us understand the problem. What is going on with this article?

WordPress REST APIで更新や削除を試す

アプリケーションパスワードの設定をして権限が有る前提です。
これにより、APIで投稿の作成、更新、削除が可能になります。
今回は更新と削除もやってみましょう。

更新

リファレンス

公式を見ると以下のように書かれています。
ほとんど作成と一緒で違うのはエンドポイント。更新したい投稿のidを入れるとこでしょう。

POST /wp/v2/posts/<id>

引数 説明
id Unique identifier for the object.
date The date the object was published, in the site's timezone.
date_gmt The date the object was published, as GMT.
slug An alphanumeric identifier for the object unique to its type.
status A named status for the object.
次のいずれか: publish, future, draft, pending, private
password A password to protect access to the content and excerpt.
title The title for the object.
content The content for the object.
author The ID for the author of the object.
excerpt The excerpt for the object.
featured_media The ID of the featured media for the object.
comment_status Whether or not comments are open on the object.
次のいずれか: open, closed
ping_status Whether or not the object can be pinged.
次のいずれか: open, closed
format The format for the object.
次のいずれか: standard, aside, chat, gallery, link, image, quote, status, video, audio
meta Meta fields.
sticky Whether or not the object should be treated as sticky.
template The theme file to use to display the object.
categories The terms assigned to the object in the category taxonomy.
tags The terms assigned to the object in the post_tag taxonomy.

APIを叩く

アプリケーションパスワードで認証をヘッダーに付与することを忘れずに。
エンドポイントはhttp://localhost:8000/wp-json/wp/v2/posts/8 (idは適宜変更)
リクエストボディのJSONは

リクエストボディ
{
    "title": "Update Title",
    "status": "publish"
}

これで投稿が更新されタイトルが変更され、statusがpublishとなり「下書き」状態が、「公開済み」になります。
ちなみにPOSTメソッドとなっていますが、PUTPATCHメソッドでも更新が反映されました。

削除

リファレンス

DELETE /wp/v2/posts/<id>

引数 説明
id Unique identifier for the object.
force Whether to bypass trash and force deletion.

APIを叩く

こちらもアプリケーションパスワードで認証をヘッダーに付与することを忘れずに。
エンドポイントはhttp://localhost:8000/wp-json/wp/v2/posts/8 (idは適宜変更)
リクエストボディはなくてもOK。DELETEメソッドなのを忘れずに!
これでstatustrashとなりゴミ箱に移動することが確認できます。

もう一度同じAPIを叩くと410のステータスでエラーが返ってきます。

レスポンス
{
    "code": "rest_already_trashed",
    "message": "その投稿はすでに削除されています。",
    "data": {
        "status": 410
    }
}

以下をリクエストボディに入れてAPIを叩くとゴミ箱にも残らず完全消去となります。

リクエストボディ
{
    "force": true
}

完全消去した後に同じAPIを叩くと404のエラーでレスポンスが返ってきます。
WordPress REST APIはエラー作り込んでますね!好感持てます!

レスポンス
{
    "code": "rest_post_invalid_id",
    "message": "無効な投稿 ID です。",
    "data": {
        "status": 404
    }
}

まとめ

WordPress REST APIで投稿の更新、削除をしてみました。
わりと簡単で、一回やれば覚えられそうですね!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした