wp_generate_password()WP 2.5.0

Генерирует случайный пароль. Можно указать длину и символы для генерации.

Pluggable функция — эту функцию можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.

Замена функции (переопределение) — в must-use или обычном плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.

Работает на основе: wp_rand()
1 раз — 0.000068 сек (очень быстро) | 50000 раз — 1.32 сек (быстро) | PHP 7.0.4, WP 4.4.2
Хуки из функции

Возвращает

Строку. Случайный пароль.

Использование

$password = wp_generate_password( $length, $special_chars, $extra_special_chars );
$length(число)
Длина пароля. Количество символов в пароле.
По умолчанию: 12
$special_chars(логический)
Включить ли в пароль редкие символы: !@#$%^&*()
По умолчанию: true
$extra_special_chars(логический)
Включить ли в пароль дополнительные редкие символы. Используется при генерации секретных ключей и солей: -_ []{}<>~`+=,.;:/?|
По умолчанию: false

Примеры

0

#1 Сгенерируем пароль и выведем его на экран

Различные примеры генерации паролей:

echo wp_generate_password();                 // @iU!ZnjUWZsg
echo wp_generate_password( 15, false );      // YdD6j750MeiOkPa
echo wp_generate_password( 15, true, true ); // .WfvgX6`V^Vg:,_

Список изменений

С версии 2.5.0 Введена.

Код wp_generate_password() WP 6.5.2

function wp_generate_password( $length = 12, $special_chars = true, $extra_special_chars = false ) {
	$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
	if ( $special_chars ) {
		$chars .= '!@#$%^&*()';
	}
	if ( $extra_special_chars ) {
		$chars .= '-_ []{}<>~`+=,.;:/?|';
	}

	$password = '';
	for ( $i = 0; $i < $length; $i++ ) {
		$password .= substr( $chars, wp_rand( 0, strlen( $chars ) - 1 ), 1 );
	}

	/**
	 * Filters the randomly-generated password.
	 *
	 * @since 3.0.0
	 * @since 5.3.0 Added the `$length`, `$special_chars`, and `$extra_special_chars` parameters.
	 *
	 * @param string $password            The generated password.
	 * @param int    $length              The length of password to generate.
	 * @param bool   $special_chars       Whether to include standard special characters.
	 * @param bool   $extra_special_chars Whether to include other special characters.
	 */
	return apply_filters( 'random_password', $password, $length, $special_chars, $extra_special_chars );
}