# wp_dropdown_roles()

URL: https://chugunov.pro/api-wordpress/functions/wp_dropdown_roles/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.1.0.

## Сигнатура

```php
wp_dropdown_roles( string $selected = '', array $editable_roles = null )
```

## Описание

Печатает элементы option для селекторов ролей.

## Параметры

- `$selected` `string` — необязательный, по умолчанию `''`. Слаг роли, которая должна быть уже выбрана.
- `$editable_roles` `array` — необязательный, по умолчанию `null`. Массив ролей для включения в выпадающий список. По умолчанию — все роли, которые текущий пользователь имеет право редактировать.

## Исходный код

Файл: `wp-admin/includes/template.php:976`

```php
function wp_dropdown_roles( $selected = '', $editable_roles = null ) {
	$r = '';

	if ( null === $editable_roles ) {
		$editable_roles = array_reverse( get_editable_roles() );
	}

	foreach ( $editable_roles as $role => $details ) {
		$name = translate_user_role( $details['name'] );
		// Preselect specified role.
		if ( $selected === $role ) {
			$r .= "\n\t<option selected='selected' value='" . esc_attr( $role ) . "'>$name</option>";
		} else {
			$r .= "\n\t<option value='" . esc_attr( $role ) . "'>$name</option>";
		}
	}

	echo $r;
}
```

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

- 7.0.0 — Added $editable_roles parameter.
- 2.1.0 — Introduced.

## Связанные

Использует: [`get_editable_roles`](https://chugunov.pro/api-wordpress/functions/get_editable_roles/), [`translate_user_role`](https://chugunov.pro/api-wordpress/functions/translate_user_role/), [`esc_attr`](https://chugunov.pro/api-wordpress/functions/esc_attr/).
Используется в: `WP_Users_List_Table::extra_tablenav`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_dropdown_roles/
