2017-05-29 166 views
0

我在Wordpress中創建了一個自定義帖子類型,並將其暴露給其他API。我還使用ACF插件向這篇文章添加了自定義字段。Wordpress Rest API - 自定義字段

在我的主題function.php中,我已經在響應中註冊了這些字段,並且在發出獲取請求時我可以看到它們。

register_rest_field('auto', 'specs', array('get_callback' => 'get_autos_specs_for_api'));

的問題是,當我發送POST請求,WordPress的不能識別這些字段。它會創建一個新的標題,所有額外的字段都是空的。

回答

0

嘗試這種解決辦法:

function wp_api_encode_acf($data,$post,$context){ 
    $data['meta'] = array_merge($data['meta'],get_fields($post['ID'])); 
    return $data; 
} 

if(function_exists('get_fields')){ 
    add_filter('json_prepare_post', 'wp_api_encode_acf', 10, 3); 
} 

參見:https://gist.github.com/rileypaulsen/9b4505cdd0ac88d5ef51

+0

是的,這是我看到的第一件事。我認爲這是爲插件。它不適用於內置的wordpress API。 –

+0

我明白了,爲什麼不嘗試使用默認的WP函數來獲取meta'get_post_meta'? – htmlbrewery

0

對我有什麼做的訣竅是自己勾休息準備後,然後添加你的字段到數組,然後返回響應目的。

function slug_add_data($response, $post) { 

$response->data['latitud'] = get_field('latitud', $response->data['id']); 
$response->data['longitud'] = get_field('longitud', $response->data['id']); 

return $response; 

}

的add_filter( 'rest_prepare_post', 'slug_add_data',10,3);