在 WordPress 系统中,新用户注册或者用户更改密码时,会随机生成一串字符串,这个函数是 WordPress 系统自带的,那么它位于哪个位置,怎样写的代码呢?
这个函数位于系统 /wp-includes/
文件夹的 pluggable.php
文件内,代码如下:
- 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);
- }
- return apply_filters( 'random_password', $password );
- }
根据WordPress文档介绍,这个函数有三个参数:
$length
:要生成的随机字符的长度,默认为:12,$special_chars
:字符串中是否包含特殊字符,例如:!@#$%^&*()
。这个参数默认是是 true,如果你不想引入这些特殊字符,可以将其设置为false。$extra_special_chars
:字符串中是否包含一些更特殊的字符,例如:-_ []{}<>~`+=,.;:/?|
,一般这个参数用于生成secret key
的时候使用。默认是 false。
看到这里,我们是不是可以收拾收拾为自己所用呢?
将上述代码稍微修改一下即可:
- /**
- * Randomly-generated password.
- *
- * /wp-includes/pluggable.php
- */
- 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, rand(0, strlen($chars) - 1), 1);
- }
- return $password;
- }
如果你想随机生成字符串,可以将上述代码放到主题的 functions.php
之中,然后在主题中进行引用。例如:
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
- <?php echo 'New password: ' . wp_generate_password(); ?>
或者将其进一步简化然后进行引用:
- /**
- * Randomly-generated password.
- *
- * /wp-includes/pluggable.php
- */
- function wp_generate_password( $length = 12, $special_chars = true, $extra_special_chars = false ) {
- $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
- $password = '';
- for ( $i = 0; $i < $length; $i++ ) {
- $password .= substr($chars, rand(0, strlen($chars) - 1), 1);
- }
- return $password;
- }
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
代码下载:百度网盘链接: pan.baidu.com/s/1hrHSjMO 密码: vrw2