Как в WordPress сделать REST API запрос для чтения произвольных полей постов?

Для того чтобы сделать REST API запрос для чтения произвольных полей постов в WordPress, необходимо использовать маршруты REST API и функционал работы с метаполями (custom fields). Ниже представлен пример кода на PHP, который позволяет получить произвольное поле поста по его идентификатору:

// Добавляем обработчик для REST API запроса
add_action('rest_api_init', function () {
    register_rest_route('custom/v1', '/post-meta/(?P<id>d+)', array(
        'methods' => 'GET',
        'callback' => 'get_custom_field_data',
    ));
});

// Функция для обработки REST API запроса и получения произвольного поля поста
function get_custom_field_data($request) {
    $post_id = $request['id'];
    
    // Получаем произвольное поле поста
    $custom_field_value = get_post_meta($post_id, 'custom_field_name', true);

    // Дополнительная проверка, чтобы убедиться, что результат не пустой
    if (empty($custom_field_value)) {
        return new WP_Error('no_data', 'No custom field data found for the post', array('status' => 404));
    }

    return $custom_field_value;
}

В данном примере мы создали маршрут /custom/v1/post-meta/{id} для REST API, где {id} - это идентификатор поста. При обращении к этому маршруту будет вызываться обработчик get_custom_field_data, который получает значение произвольного поля поста с именем custom_field_name.

Не забудьте заменить custom_field_name на имя своего произвольного поля, а также адаптировать код под ваши нужды, если необходимо получить несколько полей или добавить дополнительную логику.

Теперь, чтобы получить произвольное поле поста, вам нужно отправить GET запрос на /wp-json/custom/v1/post-meta/{id}, где {id} - идентификатор поста, данные будут возвращены в формате JSON.