Как удалить мета-поля с помощью WordPress REST API

Click here to view original web page at wp-kama.ru

Допустим мы регнули метаполе some_metakey для работы с ним в REST API. Мы умеет обновлять его значение, через POST запрос. Но как удалить это метаполе?

Запросы с методом DELETE по-умолчанию работают только для REST ресурса (объекта поста), а ресурса метаполя в WP REST API нет. Поэтому на данный момент нет возможности удалить значение метаполя с помощью DELETE метода в WordPress REST API.

Так как же быть?

Обновление/добавление метаполей делаются при вставке и обновлении объектов постов, поэтому чтобы "удалить" метаполе, нужно указать пустое значение при обновлении текущего значения. В этом случае WP REST API удаляет метаполе.

Плагин

Нашел на гите маленький плагин, который расширяет возможности REST API и позволяет работать с мета-данными постов, таксономий.

https://github.com/csalzano/wp-api-manipulate-meta

Плагин добавляет новые маршруты:

  • /wp-json/wp/v2/{post_type}/{post_id}/meta/{meta_key}
  • /wp-json/wp/v2/{taxonomy}/{term_id}/meta/{meta_key}