I created two custom REST API endpoint to create/update a user metadata a get its value.
I use update_user_meta() and get_user_meta().
Both work properly, in the API where I use get_user_meta() I have the value, but when I use the native REST API of Wordpress
/users/me?context=edit
In meta object I have an empty array.
I created two custom REST API endpoint to create/update a user metadata a get its value.
I use update_user_meta() and get_user_meta().
Both work properly, in the API where I use get_user_meta() I have the value, but when I use the native REST API of Wordpress
/users/me?context=edit
In meta object I have an empty array.
Share Improve this question asked Jun 15, 2019 at 11:36 enfixenfix 1131 silver badge5 bronze badges 2- I don’t have the source to hand to check but I’d guess it only includes a whitelisted set of properties in that list. Can you find the REST controller that serves that endpoint? – Rup Commented Jun 15, 2019 at 14:04
- I don't know where is in WP source code – enfix Commented Jun 15, 2019 at 16:30
1 Answer
Reset to default 8There's a lot of stuff saved as user meta that has no business being sent over the REST API, therefore the default endpoints do not include every piece of arbitrary meta automatically. If you want a piece of meta to appear in the REST API responses you need to register it with register_meta()
, with show_in_rest
set to true
:
register_meta( 'user', 'your_meta_key_here', [ 'show_in_rest' => true ] );