функция Устаревший since 2.3.0

wp_dropdown_users()

Устаревшее. Помечено устаревшим с версии 5.9.0.

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

wp_dropdown_users( array|string $args = '' ): string

Описание

Содержимое можно либо вывести, что происходит по умолчанию, либо получить, задав аргументу 'echo' значение false. Аргументы 'include' и 'exclude' необязательны; если они не указаны, отображаются все пользователи. В одном вызове можно использовать только один из них — либо 'include', либо 'exclude', но не оба.

Оригинал (английский)

The content can either be displayed, which it is by default, or retrieved by setting the ‘echo’ argument to false. The ‘include’ and ‘exclude’ arguments are optional; if they are not specified, all users will be displayed. Only one can be used in a single call, either ‘include’ or ‘exclude’, but not both.

Параметры

$args array|string необязательный = ''
Array or string of arguments to generate a drop-down of users.
See WP_User_Query::prepare_query() for additional available arguments.
  • show_option_all stringText to show as the drop-down default (all).
  • show_option_none stringText to show as the drop-down default when no users were found.
  • option_none_value int|stringValue to use for $show_option_none when no users were found. Default -1.
  • hide_if_only_one_author stringWhether to skip generating the drop-down if only one user was found.
  • orderby stringField to order found users by. Accepts user fields.
    Default 'display_name'.
  • order stringWhether to order users in ascending or descending order. Accepts 'ASC' (ascending) or 'DESC' (descending).
    Default 'ASC'.
  • include int[]|stringArray or comma-separated list of user IDs to include.
  • exclude int[]|stringArray or comma-separated list of user IDs to exclude.
  • multi bool|intWhether to skip the ID attribute on the 'select' element.
    Accepts 1|true or 0|false. Default 0|false.
  • show stringUser data to display. If the selected item is empty then the 'user_login' will be displayed in parentheses.
    Accepts any user field, or 'display_name_with_login' to show the display name with user_login in parentheses.
    Default 'display_name'.
  • echo int|boolWhether to echo or return the drop-down. Accepts 1|true (echo) or 0|false (return). Default 1|true.
  • selected intWhich user ID should be selected. Default 0.
  • include_selected boolWhether to always include the selected user ID in the drop- down. Default false.
  • name stringName attribute of select element. Default 'user'.
  • id stringID attribute of the select element. Default is the value of $name.
  • class stringClass attribute of the select element.
  • blog_id intID of blog (Multisite only). Default is ID of the current blog.
  • who stringDeprecated, use $capability instead.
    Which type of users to query. Accepts only an empty string or 'authors'. Default empty (all users).
  • role string|string[]An array or a comma-separated list of role names that users must match to be included in results. Note that this is an inclusive list: users must match *each* role.
  • role__in string[]An array of role names. Matched users must have at least one of these roles.
  • role__not_in string[]An array of role names to exclude. Users matching one or more of these roles will not be included in results.
  • capability string|string[]An array or a comma-separated list of capability names that users must match to be included in results. Note that this is an inclusive list: users must match *each* capability.
    Does NOT work for capabilities not in the database or filtered via 'map_meta_cap'.
  • capability__in string[]An array of capability names. Matched users must have at least one of these capabilities.
    Does NOT work for capabilities not in the database or filtered via 'map_meta_cap'.
  • capability__not_in string[]An array of capability names to exclude. Users matching one or more of these capabilities will not be included in results.
    Does NOT work for capabilities not in the database or filtered via 'map_meta_cap'.

Возвращаемое значение

string

Исходный код

wp-includes/user.php:1719

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'                 => get_current_blog_id(),
		'who'                     => '',
		'include_selected'        => false,
		'option_none_value'       => -1,
		'role'                    => '',
		'role__in'                => array(),
		'role__not_in'            => array(),
		'capability'              => '',
		'capability__in'          => array(),
		'capability__not_in'      => array(),
	);

	$defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;

	$parsed_args = wp_parse_args( $args, $defaults );

	$query_args = wp_array_slice_assoc(
		$parsed_args,
		array(
			'blog_id',
			'include',
			'exclude',
			'orderby',
			'order',
			'who',
			'role',
			'role__in',
			'role__not_in',
			'capability',
			'capability__in',
			'capability__not_in',
		)
	);

	$fields = array( 'ID', 'user_login' );

	$show = ! empty( $parsed_args['show'] ) ? $parsed_args['show'] : 'display_name';
	if ( 'display_name_with_login' === $show ) {
		$fields[] = 'display_name';
	} else {
		$fields[] = $show;
	}

	$query_args['fields'] = $fields;

	$show_option_all   = $parsed_args['show_option_all'];
	$show_option_none  = $parsed_args['show_option_none'];
	$option_none_value = $parsed_args['option_none_value'];

	/**
	 * Filters the query arguments for the list of users in the dropdown.
	 *
	 * @since 4.4.0
	 *
	 * @param array $query_args  The query arguments for get_users().
	 * @param array $parsed_args The arguments passed to wp_dropdown_users() combined with the defaults.
	 */
	$query_args = apply_filters( 'wp_dropdown_users_args', $query_args, $parsed_args );

	$users = get_users( $query_args );

	$output = '';
	if ( ! empty( $users ) && ( empty( $parsed_args['hide_if_only_one_author'] ) || count( $users ) > 1 ) ) {
		$name = esc_attr( $parsed_args['name'] );
		if ( $parsed_args['multi'] && ! $parsed_args['id'] ) {
			$id = '';
		} else {
			$id = $parsed_args['id'] ? " id='" . esc_attr( $parsed_args['id'] ) . "'" : " id='$name'";
		}
		$output = "<select name='{$name}'{$id} class='" . $parsed_args['class'] . "'>\n";

		if ( $show_option_all ) {
			$output .= "\t<option value='0'>$show_option_all</option>\n";
		}

		if ( $show_option_none ) {
			$_selected = selected( $option_none_value, $parsed_args['selected'], false );
			$output   .= "\t<option value='" . esc_attr( $option_none_value ) . "'$_selected>$show_option_none</option>\n";
		}

		if ( $parsed_args['include_selected'] && ( $parsed_args['selected'] > 0 ) ) {
			$found_selected          = false;
			$parsed_args['selected'] = (int) $parsed_args['selected'];

			foreach ( (array) $users as $user ) {
				$user->ID = (int) $user->ID;
				if ( $user->ID === $parsed_args['selected'] ) {
					$found_selected = true;
				}
			}

			if ( ! $found_selected ) {
				$selected_user = get_userdata( $parsed_args['selected'] );
				if ( $selected_user ) {
					$users[] = $selected_user;
				}
			}
		}

		foreach ( (array) $users as $user ) {
			if ( 'display_name_with_login' === $show ) {
				/* translators: 1: User's display name, 2: User login. */
				$display = sprintf( _x( '%1$s (%2$s)', 'user dropdown' ), $user->display_name, $user->user_login );
			} elseif ( ! empty( $user->$show ) ) {
				$display = $user->$show;
			} else {
				$display = '(' . $user->user_login . ')';
			}

			$_selected = selected( $user->ID, $parsed_args['selected'], false );
			$output   .= "\t<option value='$user->ID'$_selected>" . esc_html( $display ) . "</option>\n";
		}

		$output .= '</select>';
	}

	/**
	 * Filters 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 ( $parsed_args['echo'] ) {
		echo $html;
	}
	return $html;
}

История изменений

ВерсияОписание
5.9.0 Added the 'capability', 'capability__in', and 'capability__not_in' parameters. Deprecated the 'who' parameter.
4.7.0 Added the 'role', 'role__in', and 'role__not_in' parameters.
4.5.0 Added the 'display_name_with_login' value for 'show'.
2.3.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.