如何在登录页面上预先填写用户名/密码字段

时间:2012-01-24 作者:Gilles Vauvarin

对于演示环境,我想在wp登录表单的用户名和密码字段中分别填写“demo”和“demo”字符串。

因此,用户只需单击“登录”按钮即可连接到管理区域。

有办法做到这一点吗?也许用钩子?

谢谢你的建议

3 个回复
最合适的回答,由SO网友:kaiser 整理而成

结果

enter image description here

用户名可以将表单字段值声明为全局值并进行预填充。

这将覆盖通过“记住我”复选框进行的任何设置。

/**
 * Changes the default user name to "DEMO"
 * 
 * @return string $user_login
 */
function login_form_username()
{
    global $user_login;
    return $user_login = \'DEMO\';
}
add_action( \'login_head\', \'login_form_username\' );
密码我找不到任何可用于预填充的内容,所以我要添加一条注释。令人高兴/遗憾的是,有一整套可用的管理UI样式表。所以.wrap 关于h2 造型美观。该函数连接到管理挂钩的附加字段挂钩。优先顺序是0 将其设置在其他字段上方。

/**
 * Adds a note beyond the user login name & password field
 * 
 * @return string
 */
function login_form_note()
{
    print \'<div class="wrap"><h2 style="text-align: center;">The Password is "DEMO"</h2></div>\';
}
add_action( \'login_form\', \'login_form_note\', 0 );
安全性:隐藏错误由于有人会得到一个视觉证据,证明他在默认情况下输入了一个现有用户名,因此我会将以下内容添加到您的函数中。php文件,以避免告知用户名是否猜对:

/**
 * Hide wrong login names
 * 
 * @return string
 */
function no_login_error() 
{
    return __( \'Wrong Credentials.\' );
}
add_filter( \'login_errors\', \'no_login_error\' );
其他过滤器注意:

如果要替换样式等其他内容,则可以使用login_enqueue_scripts 挂钩login_headerurl 筛选url的筛选器。链接title 可以使用替换login_headertitle. 这两个触发器都适用于多站点和单站点设置login_message 过滤器

SO网友:Bainternet

您可以使用此代码自动登录用户:

add_action(\'init\', \'auto_login\');
add_action(\'admin_init\', \'auto_login\');
function auto_login() {
    if (!is_user_logged_in()) {
      //by user name
      $user = get_user_by( \'login\', \'demo\' );
      //Or by user id, 2 being the ID of the demo user
      //$user = get_userdata(2);
      wp_set_current_user($user->ID, $user->user_login);
      wp_set_auth_cookie($user->ID);
      do_action(\'wp_login\', $user->user_login);
    }
}

SO网友:Brooke.

以下是三种方法:

第一种方法是使用wp_signon hook

$creds = array();    
$creds[\'user_login\'] = \'example\';   
$creds[\'user_password\'] = \'plaintextpw\';   
$creds[\'remember\'] = true;   
$user = wp_signon( $creds, false );  
if ( is_wp_error($user) ) {  
   echo $user->get_error_message();
}
第二种方法是使用jQuery.val() 并将其添加到您的登录页面

$("#user_login").val(\'username\');    
$("#user_pass").val(\'password\');
最后一种方法是编辑wp-login.php 文件(注意,虽然这样做可行,但不建议这样做)。

结束