wp_dropdown_users()
Displays a dropdown list of users.
Hooks from the function
Returns
String. Returns or displays the HTML code for the user dropdown: <select>.
Usage Template
wp_dropdown_users( array( 'show_option_all' => '', 'show_option_none' => '', 'hide_if_only_one_author' => '', 'orderby' => 'display_name', 'order' => 'ASC', 'include' => '', 'exclude' => '', 'multi' => false, 'show' => 'display_name', 'echo' => true, 'selected' => false, 'include_selected' => false, 'name' => 'user', 'id' => 'user', 'class' => '', 'blog_id' => $GLOBALS['blog_id'], 'who' => '', 'role' => '', 'role__in' => array(), 'role__not_in' => array(), 'capability' => '', 'capability__in' => array(), 'capability__not_in' => array(), ) );
Usage
<?php wp_dropdown_users( $args ); ?>
- $args(string/array)
- Array of arguments according to which the list will be formed (see below).
Default: default parameters
Arguments of the $args parameter
In addition to the parameters listed below, you can also pass parameters of the function get_users().
- show_option_all(string)
- Text for the "select all" list item (will be at the beginning of the list).
Default: '' - show_option_none(string)
- Text for the "no user" list item (will be at the beginning of the list or second item if the show_option_all parameter is set).
Default: '' - orderby(string)
Key by which to sort the list. Can be:
-
ID- sort by user ID (theoretically in the order of registration); -
user_nicename- sort by name; display_name- sort by display name - by default.
Default: 'display_name'
-
- order(string)
Sorting direction:
-
ASC- in order - by default; DESC- in reverse order.
Default: 'ASC'
-
- include(string)
- User IDs to show in the list (separated by commas). For example,
include=4,5,12will output a list of three users.
Default: '' - exclude(string)
- User IDs not to show in the list (separated by commas). For example,
include=4,5,12will output a list of users except the 3 specified.
Default: '' - multi(boolean)
- Skip or not the ID attribute of the
- show(string)
Use the specified column of the table as displayed fields. If the element is empty, the user_login field will be shown.
ID- show ID in itemsuser_login- show login name in itemsdisplay_name- show display name in items. By defaultdisplay_name_with_login- display name and login. Since version 4.5.
Default: 'display_name'
- echo(boolean)
- 1/true - show on screen, 0/false - return result.
Default: 1 - selected(int)
- User ID to be pre-selected in the list (will add selected='selected').
Default: '' - include_selected(boolean)
- Always include in the list users with the ID specified in the selected parameter. (I did not understand where this might be needed).
Default: false - name(string)
- Value of the name attribute of the
- class(string)
- Value of the class attribute of the
- id(string)
- Value of the id attribute of the
- blog_id(int)
- Blog ID. Only for multisites. Default is the ID of the current blog.
Default: $GLOBALS['blog_id'] - who(string)
Which users to display. Can be:
''— show all users. (By default)'authors'— users who can publish posts (with roles: author, editor, administrator).
Default: ''
- role(string/array)
- Name of the user roles to include in the result. You can specify multiple names in an array. If an array is specified, the user must have all specified roles simultaneously. Since WP 4.7.
- role__in(array)
- Array of user role names that will be added to the result. A user will be added to the result if they have at least one of the specified roles. Since WP 4.7.
Default: array() - role__not_in(array)
- Array of user role names to exclude from the result. A user will not be added to the result if they have at least one of the specified roles. Since WP 4.7.
Default: array()
Examples
#1 Display a drop-down list of all users
Let's turn it into a full-fledged data submission form (inside the <form> tag and with a submit button):
<h2>Users:</h2>
<form action="<?php bloginfo('url'); ?>" method="get">
<?php wp_dropdown_users( [ 'name'=>'author' ] ); ?>
<input type="submit" name="submit" value="view" />
</form> #2 Drop-down list of authors in the posts table
See separate note.
#3 The who argument is no longer valid
Since version 5.9, you’ll need to use the new capabilities or role argument:
Changelog
| Since 2.3.0 | Introduced. |
| Since 4.5.0 | Added the 'display_name_with_login' value for 'show'. |
| Since 4.7.0 | Added the 'role', 'role__in', and 'role__not_in' parameters. |
| Since 5.9.0 | Added the 'capability', 'capability__in', and 'capability__not_in' parameters. Deprecated the 'who' parameter. |