Как удалить метаполя постов с WordPress REST API?

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

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

Проблема с удалением метаполей

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

Что делать?

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

Вот что вам нужно сделать:

  1. Получите ID поста, у которого вы хотите удалить метаполе.
  2. Выполните запрос на обновление с пустым значением метаполя.

Пример запроса на обновление метаполя

Вы можете использовать следующий код для выполнения этого обновления через REST API:


fetch('https://example.com/wp-json/wp/v2/posts/{post_id}', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
},
body: JSON.stringify({
meta: {
'some_metakey': ''
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

В этом примере замените {post_id} на ID вашего поста, а YOUR_ACCESS_TOKEN – на ваш токен доступа.

Дополнитель��ые возможности с помощью плагина

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

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

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

С помощью этих маршрутов можно более гибко управлять метаполями.

Заключение

Хотя WordPress REST API не позволяет в данный момент удалять метаполя с помощью DELETE, вы можете обойти это ограничение, присвоив метаполю пустое значение. Использование дополнительного плагина также улучшит ваши возможности работы с метаданными.

Теперь у вас есть все необходимые инструменты для управления метаполями в WordPress!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *