Добавление новых метаданных в REST API
Объясняю проблему. С помощью плагина WP REST API Controller обнаружил в пользовательском типе следующие метаданные:
Включенные из них - необходимые для меня метаданные. Этот пользовательский тип строится в другом плагине. Далее. Мне необходимо добавить дополнительные метаданные. В интернете прочитал, что для добавления полей используется функция add_post_meta(). Произведя поиск упоминаний этой функции в коде, обнаружил, что в одном месте действительно происходит нечто связанное с метаданными указанного выше пользовательского типа. Вот пример в коде для одного из поля:
add_post_meta($order['id'], "booking_order_pond_id", $id, true);
И это единственное упоминание с подобным названием (booking_order_pond_id) во всём коде плагина. Попробовав повторить, добавил строкой ниже похожую запись:
add_post_meta($order['id'], "booking_order_place_id", $place_id, true);
После сохранения, посмотрел в список, который изображён на картинке и не обнаружил новый Meta Key. Возможно, я использую не ту функцию или делаю это как-то не так. Вопрос следующий: как это делается на самом деле?
Ответы (2 шт):
Для того чтобы значение мета поля отобразилось в rest api его нужно зарегистрировать и передать в аргументах 'show_in_rest' => true , например вот так
register_post_meta(
'page', // тип поста к которому нужно добавить мета поле, можно указать пустую строку тогда поле будет добавлено для всех типов постов
'booking_order_place_id',
[
'show_in_rest' => true,
]
);
Подробнее можно ознакомиться по ссылке https://wp-kama.ru/function/register_post_meta
Это называется произвольные поля (ПП).
Функции для работы с ПП:
add_post_meta()
update_post_meta()
delete_post_meta()