[wp-trac] [WordPress Trac] #16841: Manually created user roles not showing in author dropdown regardless of assigned capabilities
WordPress Trac
noreply at wordpress.org
Wed Oct 27 18:42:27 UTC 2021
#16841: Manually created user roles not showing in author dropdown regardless of
assigned capabilities
--------------------------------------+-------------------------
Reporter: 10sexyapples | Owner: swissspidy
Type: defect (bug) | Status: closed
Priority: normal | Milestone: 5.9
Component: Role/Capability | Version: 3.1
Severity: normal | Resolution: fixed
Keywords: has-patch has-unit-tests | Focuses:
--------------------------------------+-------------------------
Changes (by swissspidy):
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"51943" 51943]:
{{{
#!CommitTicketReference repository="" revision="51943"
Role/Capability: Add support for capability queries in `WP_User_Query`.
Similar to the existing `role`/`role__in`/`role__not_in` query arguments,
this adds support for three new query arguments in `WP_User_Query`:
* `capability`
* `capability__in`
* `capability__not_in`
These can be used to fetch users with (or without) a specific set of
capabilities, for example to get all users
with the capability to edit a certain post type.
Under the hood, this will check all existing roles on the site and perform
a `LIKE` query against the `capabilities` user meta field to find:
* all users with a role that has this capability
* all users with the capability being assigned directly
Note: In WordPress, not all capabilities are stored in the database.
Capabilities can also be modified using filters like `map_meta_cap`. These
new query arguments do NOT work for such capabilities.
The prime use case for capability queries is to get all "authors", i.e.
users with the capability to edit a certain post type.
Until now, `'who' => 'authors'` was used for this, which relies on user
levels. However, user levels were deprecated a long time ago and thus
never added to custom roles. This led to constant frustration due to users
with custom roles missing from places like author dropdowns.
This updates any usage of `'who' => 'authors'` in core to use capability
queries instead.
Subsequently, `'who' => 'authors'` queries are being **deprecated** in
favor of these new query arguments.
Also adds a new `capabilities` parameter (mapping to `capability__in` in
`WP_User_Query`) to the REST API users controller.
Also updates `twentyfourteen_list_authors()` in Twenty Fourteen to make
use of this new functionality, adding a new
`twentyfourteen_list_authors_query_args` filter to make it easier to
override this behavior.
Props scribu, lgladdly, boonebgorges, spacedmonkey, peterwilsoncc,
SergeyBiryukov, swissspidy.
Fixes #16841.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/16841#comment:80>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list