wp_dropdown_users()获取所有的用户,并创建一个下拉菜单

目录

描述

Create dropdown HTML content of users.

wp_dropdown_users() 描述

用法

 <?php wp_dropdown_users$args ); ?> 

Default Usage

 <?php $args = array(
    
'show_option_all'         => null// string
    
'show_option_none'        => null// string
    
'hide_if_only_one_author' => null// string
    
'orderby'                 => 'display_name',
    
'order'                   => 'ASC',
    
'include'                 => null// string
    
'exclude'                 => null// string
    
'multi'                   => false,
    
'show'                    => 'display_name',
    
'echo'                    => true,
    
'selected'                => false,
    
'include_selected'        => false,
    
'name'                    => 'user'// string
    
'id'                      => null// integer
    
'class'                   => null// string 
    
'blog_id'                 => $GLOBALS['blog_id'],
    
'who'                     => null // string
); ?> 

wp_dropdown_users() 用法

参数

show_option_all 

(string) Causes the HTML for the dropdown to allow you to select All of the users.

show_option_none 

(string) Creates an additional <OPTION> tag at the top of the <SELECT> for selecting "none". Value of this parameter should be a string of the actual text displayed. (Eg: setting this parameter to the boolean true would actually cause the value "1" to be output as the first option in the dropdown list)

orderby 

(string) Key to sort options by. Valid values:

  • 'ID'
  • 'user_nicename'
  • 'display_name' - Default

order 

(string) Sort order for options. Valid values:

  • 'ASC' - Default
  • 'DESC'

include 

(string) Comma separated list of users IDs to include. For example, 'include=4,12' means users IDs 4 and 12 will be displayed/echoed or returned. Defaults to include all.

exclude 

(string) Comma separated list of users IDs to exclude. For example, 'exclude=4,12' means users IDs 4 and 12 will NOT be displayed/echoed or returned. It will be ignored if the include argument is set.

multi 

(boolean) Whether to skip the ID attribute on the 'select' element.

  • 1 (True)
  • 0 (False) - Default

show 

(string) User table column to display. If the selected item is empty then the user_login will be displayed in parentesis.

  • 'ID'
  • 'user_login'
  • 'display_name' - Default

echo 

(boolean) Display users (TRUE) or return them for use by PHP (FALSE).

  • 1 (True) - Default
  • 0 (False)

selected 

(integer) User ID of the user to be 'selected' or presented in the display box. Defaults to no user selected.

include_selected 

(boolean) Always include the selected user ID in the dropdown. Default is false.

name 

(string) Name assigned to the dropdown form. Defaults to 'user'.

class 

(string) Class assigned to the dropdown form.

id 

ID attribute of select element. Default is the value of the 'name' parameter.

class 

Class attribute of select element.

blog_id 

ID of blog (Multisite only). Defaults to ID of current blog.

who 

Which users to query. Currently only 'authors' is supported. Default is all users. Introduced with Version 3.1.

wp_dropdown_users() 参数

示例

Dropdown with Submit Button

Displays a users dropdown list in HTML form with a submit button.

/* ----------------------------------
 * wordpress之魂 © http://wphun.com
 * ---------------------------------- */
<li id="users">
 <h2><?php _e('users:'); ?></h2>
   <form action="<?php bloginfo('url'); ?>" method="get">
   <?php wp_dropdown_users(array('name' => 'author')); ?>
   <input type="submit" name="submit" value="view" />
   </form>
</li>

wp_dropdown_users() 示例

历史

添加于 版本: 2.3.0

wp_dropdown_users() 历史

源文件

wp_dropdown_users() 函数的代码位于 wp-includes/user.php.

/* ----------------------------------
 * wordpress之魂 © http://wphun.com
 * ---------------------------------- */
/**
 * 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 = "";
	}

	/**
	 * 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;
}

wp_dropdown_users() 源文件

相关