我正在尝试将自定义字段添加到 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');
我做错了什么?
问题在于您如何在
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 响应中。