wp_dropdown_users( array|string $args = '' )
创建用户的下拉HTML内容。
Create dropdown HTML content of users.
说明(Description)
可以显示内容(默认情况下是这样),也可以通过设置“echo”参数来检索内容。不需要使用“include”和“exclude”参数;在这种情况下,将显示所有用户。只能使用一个“include”或“exclude”,但不能同时使用这两个。可用参数如下:
源码(Source)
/**
* Create dropdown HTML content of users.
*
* The content can either be displayed, which it is by default or retrieved by
* setting the 'echo' argument. The 'include' and 'exclude' arguments do not
* need to be used; all users will be displayed in that case. Only one can be
* used, either 'include' or 'exclude', but not both.
*
* The available arguments are as follows:
*
* @since 2.3.0
*
* @global wpdb $wpdb WordPress database object for queries.
* @global int $blog_id
*
* @param array|string $args {
* Optional. Array or string of arguments to generate a drop-down of users.
* {@see WP_User_Query::prepare_query() for additional available arguments.
*
* @type string $show_option_all Text to show as the drop-down default (all).
* Default empty.
* @type string $show_option_none Text to show as the drop-down default when no
* users were found. Default empty.
* @type int|string $option_none_value Value to use for $show_option_non when no users
* were found. Default -1.
* @type string $hide_if_only_one_author Whether to skip generating the drop-down
* if only one user was found. Default empty.
* @type string $orderby Field to order found users by. Accepts user fields.
* Default 'display_name'.
* @type string $order Whether to order users in ascending or descending
* order. Accepts 'ASC' (ascending) or 'DESC' (descending).
* Default 'ASC'.
* @type array|string $include Array or comma-separated list of user IDs to include.
* Default empty.
* @type array|string $exclude Array or comma-separated list of user IDs to exclude.
* Default empty.
* @type bool|int $multi Whether to skip the ID attribute on the 'select' element.
* Accepts 1|true or 0|false. Default 0|false.
* @type string $show User table column to display. If the selected item is empty
* then the 'user_login' will be displayed in parentheses.
* Accepts user fields. Default 'display_name'.
* @type int|bool $echo Whether to echo or return the drop-down. Accepts 1|true (echo)
* or 0|false (return). Default 1|true.
* @type int $selected Which user ID should be selected. Default 0.
* @type bool $include_selected Whether to always include the selected user ID in the drop-
* down. Default false.
* @type string $name Name attribute of select element. Default 'user'.
* @type string $id ID attribute of the select element. Default is the value of $name.
* @type string $class Class attribute of the select element. Default empty.
* @type int $blog_id ID of blog (Multisite only). Default is ID of the current blog.
* @type string $who Which type of users to query. Accepts only an empty string or
* 'authors'. Default empty.
* }
* @return string String of HTML content.
*/
function wp_dropdown_users( $args = '' ) {
$defaults = array(
'show_option_all' => '', 'show_option_none' => '', 'hide_if_only_one_author' => '',
'orderby' => 'display_name', 'order' => 'ASC',
'include' => '', 'exclude' => '', 'multi' => 0,
'show' => 'display_name', 'echo' => 1,
'selected' => 0, 'name' => 'user', 'class' => '', 'id' => '',
'blog_id' => $GLOBALS['blog_id'], 'who' => '', 'include_selected' => false,
'option_none_value' => -1
);
$defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
$r = wp_parse_args( $args, $defaults );
$show = $r['show'];
$show_option_all = $r['show_option_all'];
$show_option_none = $r['show_option_none'];
$option_none_value = $r['option_none_value'];
$query_args = wp_array_slice_assoc( $r, array( 'blog_id', 'include', 'exclude', 'orderby', 'order', 'who' ) );
$query_args['fields'] = array( 'ID', 'user_login', $show );
$users = get_users( $query_args );
$output = '';
if ( ! empty( $users ) && ( empty( $r['hide_if_only_one_author'] ) || count( $users ) > 1 ) ) {
$name = esc_attr( $r['name'] );
if ( $r['multi'] && ! $r['id'] ) {
$id = '';
} else {
$id = $r['id'] ? " id='" . esc_attr( $r['id'] ) . "'" : " id='$name'";
}
$output = "
";
if ( $show_option_all ) {
$output .= " $show_option_all
";
}
if ( $show_option_none ) {
$_selected = selected( $option_none_value, $r['selected'], false );
$output .= " $show_option_none
";
}
$found_selected = false;
foreach ( (array) $users as $user ) {
$user->ID = (int) $user->ID;
$_selected = selected( $user->ID, $r['selected'], false );
if ( $_selected ) {
$found_selected = true;
}
$display = ! empty( $user->$show ) ? $user->$show : '('. $user->user_login . ')';
$output .= " " . esc_html( $display ) . "
";
}
if ( $r['include_selected'] && ! $found_selected && ( $r['selected'] > 0 ) ) {
$user = get_userdata( $r['selected'] );
$_selected = selected( $user->ID, $r['selected'], false );
$display = ! empty( $user->$show ) ? $user->$show : '('. $user->user_login . ')';
$output .= " " . esc_html( $display ) . "
";
}
$output .= "";
}
/**
* Filter the wp_dropdown_users() HTML output.
*
* @since 2.3.0
*
* @param string $output HTML output generated by wp_dropdown_users().
*/
$html = apply_filters( 'wp_dropdown_users', $output );
if ( $r['echo'] ) {
echo $html;
}
return $html;
}
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
4.7.0 | wp-includes/user.php | 17 | 20 |