Поле ACF в пользовательской конечной точке REST WordPress

#php #wordpress

#php #wordpress

Вопрос:

Я использую этот метод для создания пользовательской конечной точки API, метод определен следующим кодом. Этот код работает нормально, но поле ACF отображается как false.В этом коде мое расширенное значение пользовательского поля равно url

 function help_faq_data() {
$args = [
    'numberposts' => 99999,
    'post_type' => 'help-center'
];

// get posts
$posts = get_posts($args);
$data = [];
$i = 0;

foreach($posts as $post) {
    $data[$i]['id'] = $post->ID;
    $data[$i]['foo'] = get_field('url', $post->ID);
    $i  ;
   }
    return $data;
 }

add_action('rest_api_init', function() {
register_rest_route('help-center-api/v1', 'faq-data', [
    'methods' => 'GET',
    'callback' => 'help_faq_data',
   ]);
});
  

Результат:

 {
   "id": 190,
   "foo": false
}, etc..
  

Комментарии:

1. Вы уверены, что поле URL ACF действительно имеет значение для post 190? Кроме того, вместо 99999 numberposts вы можете просто установить его равным -1.

2. Да, у меня есть значение. Я получаю другие данные, но не значение из расширенного пользовательского поля

3. Обычно это должно работать так, но попробуйте использовать ключ поля (например, field_5c629deadbeef ) поля url вместо 'url' . И вы можете попробовать debug_log('get_field for url: '.json_encode(get_field_object('field_5c629deadbeef', $post->ID))); проверить, что это возвращает.