2017-05-29 17 views
0

Wordpressでカスタムポストタイプを作成し、それをAPIに公開しました。また、ACFプラグインを使用してこの投稿にカスタムフィールドを追加しました。Wordpress Rest API - カスタムフィールド

私のテーマはfunction.phpです。私はこれらのフィールドをレスポンスに登録しました。私はgetリクエストをするとそれらを見ることができます。

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

問題は、私はPOSTリクエストを送信する際に、ワードプレスは、これらのフィールドを認識しないということです。それはタイトルの新しい投稿を作成し、余分なフィールドはすべて空です。

答えて

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

私は、 'get_post_meta'というメタを得るためにデフォルトのWP関数を使うのはどうですか? – 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)。

関連する問題