Описание
Выводит на экран выпадающий список пользователей.
Функция возвращает или выводит на экран HTML код выпадающего списка (<select>).
Использование
<?php wp_dropdown_users( $args ); ?>
Параметры по умолчанию
<?php $args = 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' => ''
); ?>
Параметры
- $args (строка/массив)
- Массив аргументов, в соответствии с которыми будет сформирован список (см.ниже).
По умолчанию: параметры по умолчанию
Аргументы параметра $args
- show_option_all (строка)
- Текст для пункта списка "выбрать всех" (будет в начале списка).
По умолчанию: ''
- show_option_none (строка)
- Текст для пункта списка "ни один пользователь" (будет в начале списка или вторым пунктом, если установлен параметр show_option_all).
По умолчанию: ''
- orderby (строка)
- Ключ по которому сортировать список. Может быть:
- ID - сортировать по ID пользователя (теоретически получается по порядку регистрации);
- user_nicename - сортировать по имени;
- display_name - сортировать по отображаемому имени - по умолчанию.
По умолчанию: 'display_name'
- order (строка)
- Направление сортировки:
- ASC - по порядку - по умолчанию;
- DESC - в обратном порядке.
По умолчанию: 'ASC'
- include (строка)
- ID пользователей, которых нужно показать в списке (указывать через запятую). Например, include=4,5,12 выведет список из трех пользователей.
По умолчанию: ''
- exclude (строка)
- ID пользователей, которых не нужно показывать в списке (указывать через запятую). Например, include=4,5,12 выведет список из пользователей, кроме 3-х указанных.
По умолчанию: ''
- multi (логический)
- Пропустить или нет аттрибут ID у элемента <select>. (У меня изменение параметра ни на что не повлияло)
По умолчанию: false
- show (строка)
- Использовать указанную колонку таблицы, в качестве отображаемых полей. Если элемент пустой, то будет показано поле user_login.
- ID - показывать ID в пунктах;
- user_login - показывать логин имя в пунктах;
- display_name - показывать отображаемое имя в пунктах - по умолчанию.
По умолчанию: 'display_name'
- echo (логический)
- 1/true - показать на экране, 0/false - вернуть результат.
По умолчанию: 1
- selected (число)
- ID пользователя, которого заранее нужно выделить в списке (добавится selected='selected').
По умолчанию: ''
- include_selected (логический)
- Всегда включать в список пользователей с ID указанном в параметре selected. (где это может понадобится не понял).
По умолчанию: false
- name (строка)
- Значение атрибута name у тега <select name='user'>. По умолчанию 'user'.
По умолчанию: 'user'
- class (строка)
- Значение атрибута class у тега <select class=''>. По умолчанию ''.
По умолчанию: ''
- id (строка)
- Значение атрибута id у тега <select id='name'>. По умолчанию значение параметра 'name'.
По умолчанию: значение параметра 'name'
- blog_id (число)
- ID блога. Только для мультисайтов. По умолчанию id текущего блога.
По умолчанию: $GLOBALS['blog_id']
- who (строка)
- Каких пользователей отображать. Пока поддерживается только 'authors'. По умолчанию показывать всех пользователей. Добавлено в WordPress 3.1.
По умолчанию: ''
Примеры
1. Выведем на экран выпадающий список всех пользователей, сделав из него полноценную форму отправки даннных (внутри тега <form> и с кнопкой submit)
<h2>Пользователи:</h2>
<form action="<?php bloginfo('url'); ?>" method="get">
<?php wp_dropdown_users(array('name' => 'author')); ?>
<input type="submit" name="submit" value="view" />
</form>
wp_dropdown_users()
из файла: /wp-includes/user.php WP 3.3.2function 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
);
$defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
$r = wp_parse_args( $args, $defaults );
extract( $r, EXTR_SKIP );
$query_args = wp_array_slice_assoc( $r, array( 'blog_id', 'include', 'exclude', 'orderby', 'order', 'who' ) );
$query_args['fields'] = array( 'ID', $show );
$users = get_users( $query_args );
$output = '';
if ( !empty($users) && ( empty($hide_if_only_one_author) || count($users) > 1 ) ) {
$name = esc_attr( $name );
if ( $multi && ! $id )
$id = '';
else
$id = $id ? " id='" . esc_attr( $id ) . "'" : " id='$name'";
$output = "<select name='{$name}'{$id} class='$class'>\n";
if ( $show_option_all )
$output .= "\t<option value='0'>$show_option_all</option>\n";
if ( $show_option_none ) {
$_selected = selected( -1, $selected, false );
$output .= "\t<option value='-1'$_selected>$show_option_none</option>\n";
}
$found_selected = false;
foreach ( (array) $users as $user ) {
$user->ID = (int) $user->ID;
$_selected = selected( $user->ID, $selected, false );
if ( $_selected )
$found_selected = true;
$display = !empty($user->$show) ? $user->$show : '('. $user->user_login . ')';
$output .= "\t<option value='$user->ID'$_selected>" . esc_html($display) . "</option>\n";
}
if ( $include_selected && ! $found_selected && ( $selected > 0 ) ) {
$user = get_userdata( $selected );
$_selected = selected( $user->ID, $selected, false );
$display = !empty($user->$show) ? $user->$show : '('. $user->user_login . ')';
$output .= "\t<option value='$user->ID'$_selected>" . esc_html($display) . "</option>\n";
}
$output .= "</select>";
}
$output = apply_filters('wp_dropdown_users', $output);
if ( $echo )
echo $output;
return $output;
}Связанные Функции
Смотрите также: Функции WordPress и Теги Шаблона.
Весьма неплохие стихи, которые обязательно стоит почитать на досуге находятся по этой ссылке.