Как в Listingpro зарегистрировать мета поля в json? #2

У меня Listingpro 2.6.2. Мне нужно, чтобы в json отображались мета поля темы. Я попробовал:

add_action( 'rest_api_init', function() {
    $fields = ['ph', 'g', 'la', 'lg'];
    foreach ($fields as $field) {
        register_post_meta('listing', $field, [
            'show_in_rest' => true,
            'single'       => true,
            'type'         => 'string',
            'type'         => 'string',
         ]);
    }
});
add_action('rest_api_init', function() {
    register_rest_route('lbot/v3', '/update/(?P<id>\d+)', array(
        'methods' => 'POST',
        'callback' => function($request) {
            $id = (int)$request['id'];
            $params = $request->get_json_params();

            if (!get_post($id) || get_post_type($id) !== 'listing') {
                return new WP_Error('invalid_post', 'Неверный ID', ['status'=>404]);
            }

            // Обновляем мета напрямую
            if (isset($params['g'])) update_post_meta($id, 'g', sanitize_text_field($params['g']));
            if (isset($params['ph'])) update_post_meta($id, 'ph', sanitize_text_field($params['ph']));
            if (isset($params['e'])) update_post_meta($id, 'e', sanitize_email($params['e']));
            if (isset($params['w'])) update_post_meta($id, 'w', esc_url_raw($params['w']));
            if (isset($params['la'])) update_post_meta($id, 'la', $params['la']);
            if (isset($params['lg'])) update_post_meta($id, 'lg', $params['lg']);

            return ['success'=>true, 'id'=>$id];
        },

Но ничего получилось


Ответы (0 шт):