簡體   English   中英

將Wordpress的登錄/注冊頁面重定向到自定義登錄/注冊頁面

[英]Redirecting Wordpress's Login/Register page to a custom login/registration page

我有一個網站,有一個用戶系統。 我想將wordpress的用戶系統集成到該網站中,但我仍然希望使用該網站的注冊/登錄頁面。 我不希望任何人能夠使用Wordpress的登錄或注冊表登錄或注冊。 相反,當他們嘗試訪問Wordpress中的登錄/注冊頁面時,我希望這些頁面將它們重定向到我自己的登錄/注冊頁面。

有沒有辦法做到這一點? 我已經嘗試過谷歌了,但我能找到的只是在用戶登錄或注冊后重定向,這不是我想要的。

先感謝您。

為此,您需要將登錄/注冊頁面重定向到您的自定義頁面。 因此,將此代碼寫入functions.php文件中激活的主題文件夾下。 將自定義頁面路徑作為參數傳遞。

 add_action('init','possibly_redirect');

function possibly_redirect(){
 global $pagenow;
 if( 'wp-login.php' == $pagenow ) {
  wp_redirect('http://google.com/');
  exit();
 }
}

要限制僅針對'wp-login.php'的直接訪問,沒有POST或GET請求(對自定義ajax登錄表單很有用),我使用高級功能:

function possibly_redirect(){
  global $pagenow;
  if( 'wp-login.php' == $pagenow ) {
    if ( isset( $_POST['wp-submit'] ) ||   // in case of LOGIN
      ( isset($_GET['action']) && $_GET['action']=='logout') ||   // in case of LOGOUT
      ( isset($_GET['checkemail']) && $_GET['checkemail']=='confirm') ||   // in case of LOST PASSWORD
      ( isset($_GET['checkemail']) && $_GET['checkemail']=='registered') ) return;    // in case of REGISTER
    else wp_redirect( home_url() ); // or wp_redirect(home_url('/login'));
    exit();
  }
}
add_action('init','possibly_redirect');

正確的操作掛鈎是login_init ,它只在wp-login.php上觸發。

這里沒有請求?action=action-name ,所以它是主登錄頁面:

add_action('login_init', function(){
    if( !isset( $_GET['action'] ) ) {
        wp_redirect( 'http://example.com' );
    }
});

對於所有請求,我們可以使用特定的hook login_form_ACTION-NAME ,即postpasslogoutlostpasswordretrievepasswordresetpassregisterlogin 例:

add_action('login_form_register', function(){
    wp_redirect( site_url('custom-registration/') );
});

如果您正在使用自定義登錄頁面,但仍使用wp_login_form(),請注意該表單將POST到wp-login.php,因此您需要在重定向之前檢查$ _POST是否為空。

function prefix_wp_login_redirect() {
  global $pagenow;  
  if( $pagenow == 'wp-login.php' && empty($_POST)) {
    auth_redirect();
    exit();
  }
}

您可以鎖定login_head掛鈎並在那里發出重定向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM