获取 WP Rest 中的 MetaBox 值 API

Get MetaBox value inside WP Rest API

我有一个注册的元框:

    $meta_boxes[] = [
    'title'   => esc_html__( 'Background', 'background' ),
    'id'      => 'background',
    'context' => 'normal',
    'post_types' => array('post', 'page'),
    'fields'  => [
        [
            'type'             => 'image_advanced',
            'name'             => esc_html__( 'Background', 'background' ),
            'id'               => 'background',
            'max_file_uploads' => 1,
        ],
    ],
];

我正在尝试像这样获取 MetaBox 值:

$query = new WP_Query( $args );


$page = $query->post; // there is a post

$meta = get_post_meta($page->ID, 'background', true); // $page->ID is integer

return [
    'uri' => $uri,
    'ID' => $page->ID,
    'page' => $query->post,
    'meta' => $meta
];

,但是 $meta 是一个类似于 2225 的整数。 post 已填充此元数据框。

如果我尝试使用标准 Rest API 端点,我得到的值是:

.... post data
 "meta_box": {
    "background": [
        {
            "width": 150,
            "height": 150,
            "file": "2020/10/163593234-e1603902300928.jpg",
........

我的问题是如何使用自定义端点通过 Rest API 获取 post MetaBox 值,因为 get_post_meta、returns(我猜)有些关系?

您必须使用 wp_get_attachment_image_src:

$meta = get_post_meta( $page->ID, 'background', true ); // $page->ID is integer

if( $meta ) {
    $img = wp_get_attachment_image_src( $meta );
}

您可以看到 wp_get_attachment_image_src 返回值 here