将自定义POST类型的自定义字段公开给REST API

时间:2020-01-04 作者:Carsten H

我为帖子添加了一个自定义字段,并将其公开给REST API,该API适用于标准帖子,并出现在API响应中。但不适用于自定义帖子类型(项目),它基本上是一种标准的帖子类型,只是具有不同的名称。该字段存在于项目帖子类型中,我可以编辑和保存它。

如何将其注册到post和自定义“project”post类型?我想我只需要以如下所示的相同方式注册它。我可以同时将其注册到这两种类型吗?这是我注册帖子的方式。The reference 显示$object_type 是一个数组,所以如果我没有完全错的话,它应该是可能的,但它是如何工作的呢?

/**********************************************
* Add featured video to REST API
***********************************************/
function add_featured_video_id() {
    register_rest_field(
    \'post\', 
    \'featured_video_id\',
    array(
        \'get_callback\'    => \'get_featured_video_id\',
        \'update_callback\' => null,
        \'schema\'          => null,
         )
    );
}

add_action( \'rest_api_init\', \'add_featured_video_id\' );
    function get_featured_video_id( $object, $field_name, $request ) {
        $fv_id= get_post_meta(get_the_ID(), \'_chrest_featured_video\', true);
    return $fv_id;
}

1 个回复
最合适的回答,由SO网友:BlueSuiter 整理而成

按以下方式修改您的代码:

/**********************************************
* Add featured video to REST API
***********************************************/
function add_featured_video_id() {
    register_rest_field(
    array(\'post\', \'project\'), \'featured_video_id\',
    array(
        \'get_callback\'    => \'get_featured_video_id\',
        \'update_callback\' => null,
        \'schema\'          => null,
        )
    );
}
Visit here, 有关方法的详细信息register_rest_field,

相关推荐

安装和卸载WP-REST-API插件后API返回空白响应

WordPress/WooCommerce API在我的网站上被破坏:http://example.com/wp-json/wp/v2/posts 和http://example.com/wp-json/wc/v2/products 两者都返回空白响应。运行Python请求response = requests.get(\'http://<mysite>.com/wp-json/wp/v2/posts\', auth=HTTPBasicAuth(*auth)) 给出的响应(在调试器中