我创建了一个自定义user\\u meta,但无法通过curl进行更新。
我可以使用user\\u meta完成此操作
curl --header "Authorization: Basic ACCESS_TOKEN" -X POST -d "description=New description" http://domain.com/wp-json/wp/v2/users/1
但我不能对自定义元执行相同的操作
curl --header "Authorization: Basic ACCESS_TOKEN" -X POST -d "user_continent=Asia" http://domain.com/wp-json/wp/v2/users/1
这可能会有所帮助
如何将自定义元添加到API:
add_action( \'rest_api_init\', \'adding_user_meta_rest\' );
function adding_user_meta_rest() {
$user_metas = array(\'account_psn_title\', \'account_psn_id\', \'account_steam_title\', \'account_steam_id\', \'account_twitch_title\', \'account_twitch_id\', \'account_xbox_title\', \'account_xbox_id\', \'account_youtube_title\', \'account_youtube_id\', \'_uw_balance\', \'user_continent\', \'user_platform\');
foreach ($user_metas as $user_meta) {
register_rest_field( \'user\',
$user_meta,
array(
\'get_callback\' => \'user_meta_callback\',
\'update_callback\' => \'user_meta_update_callback\',
\'schema\' => null,
)
);
}
}
function user_meta_callback( $user, $field_name, $request) {
return get_user_meta( $user[ \'id\' ], $field_name, true );
}
function user_meta_update_callback( $user, $field_name, $request) {
update_user_meta( $user[ \'id\' ], $field_name, XXXX );
}
功能
user_meta_update_callback
是我试图使这些自定义元可编辑。
我应该放什么user_meta_update_callback
代替XXXX?我做得对吗?
最合适的回答,由SO网友:mmm 整理而成
参数get_callback
以及update_callback
接收不同的参数。
试试这个对字段有效的示例user_continent
add_action("rest_api_init", function () {
register_rest_field(
"user"
, "user_continent"
,
[
"get_callback" => function ($user, $field_name, $request, $object_type) {
return get_user_meta($user["id"], $field_name, TRUE);
},
"update_callback" => function ($value, $user, $field_name, $request, $object_type) {
update_user_meta($user->ID, $field_name, $value);
},
]
);
});