国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

wordpress用戶名允許使用郵箱登陸方法

2024-09-07 00:51:03
字體:
來源:轉載
供稿:網友

wordpress中默認中能是英文用戶名登錄了,以前有介紹過修改它可以中文用戶名,下面我再來介紹幾種修改可以是郵箱登陸的例子,都是在functions.php函數中處理.

在functions.php里加入下面的代碼:

  1. function email_address_login($username) { 
  2. $user = get_user_by_email($username); 
  3. if(!emptyempty($user->user_login)) 
  4. $username = $user->user_login; 
  5. return $username
  6. add_action('wp_authenticate','email_address_login'); 

這樣就大功告成了,但是由于wp登陸頁面中的提示文本是輸入用戶名,所以同時你總得讓你網站的注冊用戶知道你現在支持郵箱登陸了吧,打開'wp-login.php',搜索代碼:

  1. <p> 
  2. <label for="user_login"><?php _e('用戶名') ?><br /> 
  3. <input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" tabindex="10" /></label> 
  4. </p> 
  5. //把它修改成 
  6. <p> 
  7. <label for="user_login"><?php _e('用戶名或郵箱地址') ?><br /> 
  8. <input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" tabindex="10" /></label> 
  9. </p> 

大功告成.只是唯一的缺點就是你一旦升級就會覆蓋修改后的'wp-login.php'文件.上面的做法其實可以用一段代碼來代替,代碼如下:

  1. // 修改WordPress用戶名過濾機制,通過Email獲取用戶名 
  2. function ludou_allow_email_login($username$raw_username$strict) { 
  3.   if (filter_var($raw_username, FILTER_VALIDATE_EMAIL)) { 
  4.     $user_data = get_user_by('email'$raw_username); 
  5.  
  6.     if (emptyempty($user_data)) 
  7.       wp_die(__('<strong>ERROR</strong>: There is no user registered with that email address.'), '用戶名不正確'); 
  8.     else 
  9.       return $user_data->user_login; 
  10.   } 
  11.   else { 
  12.     return $username
  13.   } 
  14. // 修改登錄界面的文字,"用戶名"改成"用戶名或郵箱" 
  15. function ludou_change_text() { 
  16.   echo '<script type="text/javascript"
  17.                 var user_login_node = document.getElementById("user_login"); 
  18.                 var old_username_text = user_login_node.parentNode.innerHTML; 
  19.                 user_login_node.parentNode.innerHTML = old_username_text.replace(/用戶名/, "用戶名或郵箱"); 
  20.       </script>'; 
  21. if (in_array($GLOBALS['pagenow'], array('wp-login.php')) && strpos($_SERVER['REQUEST_URI'], '?action=register') === FALSE && strpos($_SERVER['REQUEST_URI'], '?action=lostpassword') === FALSE && strpos($_SERVER['REQUEST_URI'], '?action=rp') === FALSE ) { 
  22.   add_filter('sanitize_user''ludou_allow_email_login', 10, 3); 
  23.   add_action('login_footer''ludou_change_text'); 

同樣,添加到functions.php內就可以了.

另一個方法:將下面的代碼添加到當前主題的 functions.php 文件即可:

  1. //讓WordPress支持用戶名或郵箱登錄 
  2. function dr_email_login_authenticate( $user$username$password ) { 
  3.  if ( is_a$user'WP_User' ) ) 
  4.   return $user
  5.  
  6.  if ( !emptyempty$username ) ) { 
  7.   $username = str_replace'&''&'stripslashes$username ) ); 
  8.   $user = get_user_by( 'email'$username ); 
  9.   if ( isset( $user$user->user_login, $user->user_status ) && 0 == (int) $user->user_status ) 
  10.    $username = $user->user_login; 
  11.  } 
  12.  
  13.  return wp_authenticate_username_password( null, $username$password ); 
  14. remove_filter( 'authenticate''wp_authenticate_username_password', 20, 3 ); 
  15. add_filter( 'authenticate''dr_email_login_authenticate', 20, 3 ); 
  16.  
  17. //替換“用戶名”為“用戶名 / 郵箱” 
  18. function username_or_email_login() { 
  19.  if ( 'wp-login.php' != basename$_SERVER['SCRIPT_NAME'] ) ) 
  20.   return
  21.  
  22.  ?><script type="text/javascript"
  23.  // Form Label 
  24.  if ( document.getElementById('loginform') ) 
  25.   document.getElementById('loginform').childNodes[1].childNodes[1].childNodes[0].nodeValue = '<?php echo esc_js( __( '用戶名/郵箱', 'email-login' ) ); ?>'
  26.  
  27.  // Error Messages 
  28.  if ( document.getElementById('login_error') ) 
  29.   document.getElementById('login_error').innerHTML = document.getElementById('login_error').innerHTML.replace( '<?php echo esc_js( __( '用戶名' ) ); ?>''<?php echo esc_js( __( '用戶名/郵箱' , 'email-login' ) ); ?>' ); 
  30.  </script><?php 
  31. add_action( 'login_form''username_or_email_login' ); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁强县| 稻城县| 宁南县| 达州市| 登封市| 宜阳县| 盐亭县| 高安市| 绥阳县| 呼和浩特市| 顺昌县| 定西市| 白城市| 特克斯县| 宜黄县| 务川| 明溪县| 大田县| 滦南县| 布拖县| 大名县| 建阳市| 丁青县| 遂川县| 永登县| 左贡县| 墨竹工卡县| 陕西省| 泸西县| 泽普县| 保德县| 宝清县| 阆中市| 梁河县| 怀化市| 德安县| 绥江县| 新蔡县| 白河县| 思茅市| 雷山县|