Filters the query arguments for the list of users in the dropdown.
Parameters
$query_argsarray- The query arguments for get_users() .
More Arguments from get_users( … $args )
Arguments to retrieve users. See WP_User_Query::prepare_query() for more information on accepted arguments. $parsed_argsarray- The arguments passed to wp_dropdown_users() combined with the defaults.
More Arguments from wp_dropdown_users( … $args )
Array or string of arguments to generate a drop-down of users.
See WP_User_Query::prepare_query() for additional available arguments.
show_option_allstringText to show as the drop-down default (all).
show_option_nonestringText to show as the drop-down default when no users were found.option_none_valueint|stringValue to use for$show_option_nonewhen no users were found. Default -1.hide_if_only_one_authorstringWhether to skip generating the drop-down if only one user was found.orderbystringField to order found users by. Accepts user fields.
Default'display_name'.orderstringWhether to order users in ascending or descending order. Accepts'ASC'(ascending) or'DESC'(descending).
Default'ASC'.includeint[]|stringArray or comma-separated list of user IDs to include.
excludeint[]|stringArray or comma-separated list of user IDs to exclude.
multibool|intWhether to skip the ID attribute on the'select'element.
Accepts1|trueor0|false. Default0|false.showstringUser data to display. If the selected item is empty then the'user_login'will be displayed in parentheses.
Accepts any user field, or'display_name_with_login'to show the display name with user_login in parentheses.
Default'display_name'.echoint|boolWhether to echo or return the drop-down. Accepts1|true(echo) or0|false(return). Default1|true.selectedintWhich user ID should be selected. Default 0.include_selectedboolWhether to always include the selected user ID in the drop- down. Default false.namestringName attribute of select element. Default'user'.idstringID attribute of the select element. Default is the value of$name.classstringClass attribute of the select element.blog_idintID of blog (Multisite only). Default is ID of the current blog.whostringDeprecated, use$capabilityinstead.
Which type of users to query. Accepts only an empty string or'authors'. Default empty (all users).rolestring|string[]An array or a comma-separated list of role names that users must match to be included in results. Note that this is an inclusive list: users must match *each* role.role__instring[]An array of role names. Matched users must have at least one of these roles. Default empty array.role__not_instring[]An array of role names to exclude. Users matching one or more of these roles will not be included in results. Default empty array.capabilitystring|string[]An array or a comma-separated list of capability names that users must match to be included in results. Note that this is an inclusive list: users must match *each* capability.
Does NOT work for capabilities not in the database or filtered via 'map_meta_cap'.capability__instring[]An array of capability names. Matched users must have at least one of these capabilities.
Does NOT work for capabilities not in the database or filtered via 'map_meta_cap'. Default empty array.capability__not_instring[]An array of capability names to exclude. Users matching one or more of these capabilities will not be included in results.
Does NOT work for capabilities not in the database or filtered via 'map_meta_cap'. Default empty array.
Source
$query_args = apply_filters( 'wp_dropdown_users_args', $query_args, $parsed_args );
Changelog
| Version | Description |
|---|---|
| 4.4.0 | Introduced. |
This filter allows you to set subscribers as authors of blog posts within the admin without giving them additional privileges. Here’s the code:
In addition to Jonathan’s contribution, you can also expand it further by specifying the role. This is undocumented on wp codex. But does work e.g.
In addition to RiseOfLex88’s contribution, you can also specify multiple roles.
If you dump variable “$query_args” inside this function, this is what you will get:
Note that if you’re trying to filter the “Author” dropdown on the post editor screen, and the post editor is using Gutenberg, this filter doesn’t fire. You’ll need to work with the rest_user_query filter instead. (But also note that this filter is used for a lot more than the Author dropdown, so use it thoughtfully.)
For this to work with Subscribers, you’ll also need to adjust the capability: