Multisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site office hours are held every Tuesday at 17:00 UTC in #core-multisite. The next will be Tuesday 17:00 UTC.
Improving the users endpoint was the main focus of this week’s office hours. The following is a recap of the decisions from that discussion. Please leave your feedback in the comments on this post. Related meeting notes are available from the January 10th office hours and the January 3rd office hours.
Chat log
Attendees: @iamfriendly, @sergeybiryukov, @flixos90, @ssstofff, @vizkr, @jnylen0, @nerrad, @johnbillion, @jeremyfelt
4.7.3
Some small changes to the users endpoint for multisite should be made in 4.7.3. The ticket Created for both bug reports and feature development on the bug tracker. for these changes is #39701.
- Fail when a
GET
request is made to site.com/wp-json/wp/v2/users/<id>
and that user is not a member of the current site.
- Fail when a
PUT
request is made to site.com/wp-json/wp/v2/users/<id>
and that user is not a member of the current site.
The expectation for the users endpoint in 4.7.3 is that only users from the current site can be listed or managed in any way via the REST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.. Global access to users will not be available, even to global administrators (super admin (and super admin)).
4.8
The users endpoint will be improved significantly for the 4.8 release, ideally providing full compatibility with how users are currently managed in a multisite configuration. The ticket for this task is #39544.
Here are the expectations for the users endpoint in 4.8:
POST
to site.com/wp/v2/users/
with an existing global user’s email address adds the existing global user to a site.
POST
to site.com/wp/v2/users/
with complete new user data creates a new global user.
GET
to site.com/wp/v2/users/
with a global
parameter set to true
lists all global users.
GET
to site.com/wp/v2/users/
without a global
parameter lists only the site’s users.
GET
to site.com/wp/v2/users/<id>
with a global
parameter set to true
lists data for a global user, even if they are not a member of the site.
GET
to site.com/wp/v2/users/<id>
without a global
parameter lists data for a user only if they are a member of the site.
PUT
to site.com/wp/v2/users/<id>
with a global
parameter set to true
updates a global user and data for a user that is in the global context.
PUT
to site.com/wp/v2/users/<id>
without a global
parameter updates a data for a site user that is in the site context. This is how role data can be passed to maintain a user’s relationship with the site.
DELETE
to site.com/wp/v2/users/<id>
with a global
parameter set to true
deletes the user completely.
DELETE
to site.com/wp/v2/users/<id>
without a global
parameter removes the user from the site.
Note that while users exist in a global context, data attached to these users can exist in the global context (e.g. email address) or in a site context (e.g. site role). There may need to be a method for registering user meta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. in a way that specifies whether it should be treated as global or site data.
Much of the work for 4.8 is still fluid. Please leave feedback on this approach in the comments and join office hours in #core-multisite on Tuesday 17:00 UTC!
#multisite, #networks-sites, #rest-api