How to delete Post-meta-fields using WordPress REST API
Let's say we've registered the meta-field some_metakey
to work with it in the REST API. We can update its value using a POST request. But how do we delete this meta-field?
DELETE requests by default only work for the REST resource (post object), and there is no meta-field resource in the WP REST API. Therefore, at the moment, it is not possible to delete the value of a meta-field using the DELETE method in the WordPress REST API.
So what to do?
Updating/adding meta-fields is done when inserting and updating post objects, so to "delete" the meta-field, you need to provide an empty value when updating the current value. In this case, the WP REST API will delete the meta-field.
Plugin
I found a small plugin on GitHub that extends the capabilities of the REST API and allows working with post metadata, taxonomies.
https://github.com/csalzano/wp-api-manipulate-meta
The plugin adds new routes:
/wp-json/wp/v2/{post_type}/{post_id}/meta/{meta_key}
/wp-json/wp/v2/{taxonomy}/{term_id}/meta/{meta_key}