Как удалить метаполя постов с помощью WordPress REST API
Предположим, мы зарегистрировали метаполе с именем some_metakey
для работы с ним в REST API. Мы можем обновить его значение с помощью POST-запроса. Но как же удалить это метаполе?
Проблема с удалением метаполей
Запросы DELETE по умолчанию работают только с ресурсами REST (объектами постов), и в WP REST API нет ресурса для метаполей. Поэтому на данный момент нельзя удалить значение метаполя с помощью метода DELETE в WordPress REST API.
Что делать?
Обычно обновление или добавление метаполей происходит при вставке или обновлении объектов постов. Чтобы "удалить" метаполе, необходимо предоставить пустое значение при обновлении текущего значения. В этом случае WP REST API удалит метаполе.
Вот что вам нужно сделать:
- Получите ID поста, у которого вы хотите удалить метаполе.
- Выполните запрос на обновление с пустым значением метаполя.
Пример запроса на обновление метаполя
Вы можете использовать следующий код для выполнения этого обновления через 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!