簡體   English   中英

如何更改按鈕的默認 Wordpress 登錄頁面鏈接?

[英]How can I change the default Wordpress Login Page link for a button?

我正在使用帶有 WP Job Manager 插件的 OceanWP 主題來構建我的工作列表網站。

當用戶在未登錄時嘗試“發布工作”時,WP Job Manager 插件會顯示一個默認登錄按鈕,該按鈕會將他們定向到默認 wp-login.php 頁面: http://prntscr.com/pr86qn

但是我希望用戶被轉移到我創建的新的自定義登錄/注冊頁面,因為它沒有“Wordpress”徽標,並且還允許用戶在沒有帳戶的情況下進行注冊。

當我單擊此“登錄”按鈕上的“檢查元素”選項時,我可以在此處看到鏈接: http://prntscr.com/pr8951

所以我想更改鏈接:

<a class="button" href="https://www.XXXXXXXXXX.co.uk/wp-login.php?redirect_to=https%3A%2F%2Fwww.XXXXXXXXXX.co.uk%2Fpost-a-job%2F">Sign in</a>

(我已經 XX 刪除了我的網站名稱,因為我不希望它出現在任何谷歌搜索結果中)

...以便它將用戶引導到我的新自定義登錄/注冊頁面。

誰能建議我可以從哪個文件更改此鏈接,或者是否有更好的方法來更改此鏈接?

謝謝

此代碼段會將所有登錄鏈接重定向到指定頁面(只需將第 3 行的 /login-page/ 替換為您的自定義登錄頁面的 slug):

add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
    return home_url( '/login-page/?redirect_to=' . $redirect );
}

修復重定向問題

/** Log in redirect to previous page by logicdigger **/
// start global session for saving the referer url
function start_session() {
    if(!session_id()) {
        session_start();
    }
}
add_action('init', 'start_session', 1);

// get the referer url and save it to the session
function redirect_url() {
    if (! is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } else {
        session_destroy();
    }
}
add_action( 'template_redirect', 'redirect_url' );

//login redirect to referer url
function login_redirect() {
    if (isset($_SESSION['referer_url'])) {
        wp_redirect($_SESSION['referer_url']);
    } else {
        wp_redirect(home_url());
    }
}
add_filter('woocommerce_login_redirect', 'login_redirect', 1100, 2);

嘗試使用 LoginPress 插件自定義默認登錄頁面https://wordpress.org/plugins/loginpress/

我認為您需要更高級的 function 最初提到這里

將此添加到您的 function 文件中。

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');

請從 go 到 FTP

暫無
暫無

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

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