Как в 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];
},
Но ничего получилось