首页 文章

Wordpress Rest API - 自定义字段

提问于
浏览
0

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

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

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

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

2 回答

  • 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

    对我来说,诀窍是将自己挂钩到其余的准备帖子,然后将你的字段添加到数组,然后返回响应对象 .

    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);

相关问题