自定义字段未显示在 WordPress REST API 响应中

问题描述 投票:0回答:1

我正在尝试将自定义字段添加到 WordPress 中自定义帖子类型的 REST API 响应中。该字段应该显示 my_custom_field 的值。但是,自定义字段没有出现在响应中。

这是我正在使用的代码:

function add_custom_fields_to_rest_api() {
    register_rest_field(
        'my_custom_post_type',
        'my_custom_field',
        array(
            'get_callback' => 'get_custom_field_value',
            'update_callback' => null,
            'schema' => null,
        )
    );
}

function get_custom_field_value($object, $field_name, $request) {
    return get_post_meta($object->ID, $field_name, true);
}

add_action('rest_api_init', 'add_custom_fields_to_rest_api');

我做错了什么?

php wordpress wordpress-rest-api
1个回答
0
投票

问题在于您如何在

ID
功能中访问帖子
get_custom_field_value
$object
参数应被视为数组,而不是对象。

您的代码应如下所示:

function add_custom_fields_to_rest_api() {
    register_rest_field(
        'my_custom_post_type',
        'my_custom_field',
        array(
            'get_callback' => 'get_custom_field_value',
            'update_callback' => null,
            'schema' => null,
        )
    );
}

function get_custom_field_value($object, $field_name, $request) {
    return get_post_meta($object['id'], $field_name, true);
}

add_action('rest_api_init', 'add_custom_fields_to_rest_api');

get_custom_field_value
功能中,
$object['id']
正确访问帖子
ID
。这应确保
my_custom_field
按预期出现在 REST API 响应中。

© www.soinside.com 2019 - 2024. All rights reserved.