对于忘记注册的用户名这种情况,可谓再常见不过了……幸运的是,您可以在登录界面增加一个 「使用 Email 登录」 的选项,这样,我们可爱的用户应该不会再为登录不上 WordPress 而苦恼了吧?

代码添加 Email 登录功能,添加以下代码至 Functions.php:

  1. //remove WordPress authentication  
  2. 20);  
  3.    
  4.    
  5. //Check for empty fields  
  6.         if(empty($email) || empty ($password)){          
  7. //create new error object and add errors to it.  
  8.             $error = new WP_Error();  
  9.             if(empty($email)){ //No email  
  10.             }  
  11. else if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ //Invalid Email  
  12.                 $error->add(『invalid_username』, __(『<strong>ERROR</strong>: Email is invalid.』));  
  13.    
  14. if(empty($password)){ //No password  
  15.                 $error->add(』empty_password』, __(『<strong>ERROR</strong>: Password field is empty.』));  
  16.    
  17. return $error;  
  18.         }  
  19.         //Check if user exists in WordPress database  
  20.    
  21. //bad email  
  22.         if(!$user){  
  23. new WP_Error();  
  24.             $error->add(『invalid』, __(『<strong>ERROR</strong>: Either the email or password you entered is invalid.』));  
  25. return $error;  
  26.         }  
  27. else//check password  
  28.             if(!wp_check_password($password, $user->user_pass, $user->ID)){ //bad password  
  29. new WP_Error();  
  30.                 $error->add(『invalid』, __(『<strong>ERROR</strong>: Either the email or password you entered is invalid.』));  
  31. return $error;  
  32.             }else{  
  33. return $user; //passed  
  34.             }  
  35. }, 203);