Wordpress Rest API - 自定义字段

时间:2017-05-29 01:50:13

标签: php wordpress rest wordpress-rest-api

我在Wordpress中创建了一个自定义帖子类型,并将其暴露给其他API。我还使用ACF插件为此帖添加了自定义字段。

在我的主题function.php中,我在响应中注册了这些字段,当我发出get请求时,我可以看到它们。

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

问题在于,当我发送帖子请求时,wordpress无法识别这些字段。它创建一个带有标题的新帖子,所有额外的字段都是空的。

3 个答案:

答案 0 :(得分:0)

尝试解决方案:

script

参考:https://gist.github.com/rileypaulsen/9b4505cdd0ac88d5ef51

答案 1 :(得分: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);

答案 2 :(得分:0)

不是使用自定义代码,而是使用开箱即用的解决方案将ACF字段访问到Rest API。
插件网址:https://github.com/airesvsg/acf-to-rest-api

添加过滤器,如下所示:

//Filter to to get acf field within acf field for relational field set
add_filter( 'acf/rest_api/<custom_posttype>/get_fields', function( $data ) {
    if ( ! empty( $data ) ) {
        array_walk_recursive( $data, 'get_fields_recursive' );
    }

    return $data;
} );

如果所有配置正确,您将在默认的WordPress Rest API响应内部获得ACF字段对象。

让我知道是否需要帮助!