wp_dropdown_users() — фунция, создающая выпадающий список <select> из пользователей сайта

Описание этой функции публикую вслед посту, в котором она используется (про фильтр записей по пользователям в админке).

wp_dropdown_users( $args = '' )

Параметры массива $args

show_option_all
(строка) Добавляет элемент селекта для выбора всех пользователей, по умолчанию null — не добавлять.

$args = array(
	'show_option_all' => 'Все пользователи'
);
<select name="user" id="user" class="">
	<option value="0">Все пользователи</option>
	<option value="1">Misha</option>
	...
</select>
show_option_none
(строка) Противоположное предыдущему параметру. Добавляет элемент <option> для выбора «никого из пользователей». Строка же, указанная в этом параметре, будет являться лейблом этого <option>, по умолчанию null — не добавлять.

<select name="user" id="user" class="">
	<option value="-1">Не выбирать пользователя</option>
	<option value="1">Misha</option>
	...
</select>
orderby
(строка) сортировать выводимых пользователей по:

  • ID — по ID пользователя,
  • user_nicename — по логину,
  • display_name — по отображаемому имени (по умолчанию).
order
(строка) порядок сортировки:

  • ASC — по возрастанию (0-9, A-Я) (по умолчанию),
  • DESC — по убыванию (9-0, Я-А).
include
(строка) Если вам нужно отобразить только каких-то конкретных пользователей, просто укажите их ID в этом параметре через запятую.
exclude
(строка) Если вам нужно исключить каких-либо пользователей из списка, просто укажите их ID в этом параметре через запятую.
multi
(логическое) Если вы указываете этот параметр равным true, будет подразумеваться, что вы хотите использовать функцию wp_dropdown_users() несколько раз на странице. По факту же будет просто удалён атрибут ID из селекта (по умолчанию — false).
show
(строка) Что отображать в качестве лейблов:

  • ID — ID пользователей,
  • user_nicename — их логины,
  • display_name — их отображаемое имя, которое они сами могут задать в админке (по умолчанию).
echo
(логическое) Вывести (true) или возвратить (false) результат действия функции.
selected
(целое число) ID выбранного пользователя в списке. Может быть также равным -1 при задействованном параметре show_option_none.
include_selected
(логическое) При указанном true включает выбранного пользователя в список, даже если он там не должен отображаться, исходя из других параметров (по умолчанию — false).
name
(строка) Атрибут name селекта.
id
(строка) Атрибут id селекта. По умолчанию совпадает с атрибутом name.
class
(строка) Атрибут class селекта.
blog_id
(целое число) Для мультисайта — укажите ID блога, с которого будут вытаскиваться пользователи (по умолчанию — текущий блог).
who
(строка) Если указать значение этого параметра равным authors, то будут выводиться только пользователи с правами авторов и выше.

Пример использования

<h2>Пользователи</h2>
<form action="#" method="get">
	<?php 
		$args = array(
			'show_option_all' => 'Все пользователи',
			'name' => 'author'
		);
		wp_dropdown_users( $args );
	?>
	<button>Выбрать</button>
</form>

Фильтры

У функции также есть два фильтра.

$query_args = apply_filters( 'wp_dropdown_users_args', $query_args, $r );

Здесь $query_args — массив установленных пользователем параметров, а $r — массив параметров по умолчанию, запускается практически в самом начале функции.

$html = apply_filters( 'wp_dropdown_users', $output );

Нетрудно догадаться, что $output — это HTML код, возвращаемый/выводимый функцией, задействуется в самом конце.

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Владимир: и на третьей строке не хватает скобки ) закрывающей if :)

  • Миша: Добрый вечер! Рекомендую получить ID пользователя через функцию get_current_user_id().

  • Дмитрий: Миша, подскажите пожалуйста, я использую такой редирект, но он не срабатывает: add_action( 'template_redirect', funct...

  • Миша: Ну как не определена - это аргумент функции. Или я просто вас не до конца понимаю.

  • Артем: Ага, понял. Вот только почему $args? Она же нигде не определена, по логике должна быть переменная $true_field_params или...