2016-01-13 59 views
1

我現在在網站上使用wp_login_form(),當您正確登錄時,它會將用戶重定向到相應的URL。在wordpress中重定向登錄表格

不幸的是,如果您在用戶名/密碼中輸入錯誤,它會將您轉到wp-login.php,這會在用戶身上晃動其框。並破壞一致的品牌體驗。

那麼有沒有人知道一種方法,使它不這樣做?

回答

0

試試這個:

這將讓你有主題的頁眉和頁腳,在登錄頁面

add_action('login_head', 'wp_custom_login_header'); 
    function wp_custom_login_header() { 
     wp_enqueue_style('wp-custom-login'); 

     do_action('wp_custom_login_header_before'); 
     get_header(); 
     do_action('wp_custom_login_header_after'); 
    } 

    add_action('login_footer', 'wp_custom_login_footer'); 
    function wp_custom_login_footer() { 
     do_action('wp_custom_login_footer_before'); 
     get_footer(); 
     do_action('wp_custom_login_footer_after'); 
    } 

    function wp_custom_login_is_login_page() { 
     return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php')); 
    } 
0

說你使用wp_login_form()功能,我猜你使用自定義窗體在自己的網頁上。

有幾件事你可以做。

如果此表單位於其自己的頁面上,而您只是希望將不正確的密碼/用戶名返回到該頁面並提醒用戶,則可以在您的functions.php文件中創建一個函數,該函數將重定向到引用頁面像這樣:

add_action('wp_login_failed', 'my_front_end_login_fail'); // hook failed login 

function my_front_end_login_fail($username) { 
    $referrer = $_SERVER['HTTP_REFERER']; // where did the post submission come from? 
    // if there's a valid referrer, and it's not the default log-in screen 
    if (!empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin')) { 
     wp_redirect($referrer . '?login=failed'); // let's append some information (login=failed) to the URL for the theme to use 
     exit; 
    } 
} 

如果你只是想刪除的震動,你可以在你functions.php文件中使用這段代碼將停止抖動。

function my_login_head() { 
remove_action('login_head', 'wp_shake_js', 12); 
} 
add_action('login_head', 'my_login_head'); 

這最後的建議只是基於用戶訪問wp-login.php頁面,然後踢回給您的自定義登錄頁面。

function redirect_login_page() { 
    $login_page = home_url('/login/'); // CHANGE THIS TO YOUR PAGE URL 
    $page_viewed = basename($_SERVER['REQUEST_URI']); 

    if($page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') { 
     wp_redirect($login_page); 
     exit; 
    } 
} 
add_action('init','redirect_login_page'); 
+0

它不起作用。我有一個wordpress主題,它已經包含了所有登錄/註冊的代碼,但是當我輸入錯誤的密碼和空白字段,然後重定向到wp-login.php頁面,當所有字段被填充比其工作。 –

+0

你試過哪段代碼?頂部還是底部? – Stewartside

+0

top add_action('wp_login_failed','my_front_end_login_fail'); // hook failed failed function my_front_end_login_fail($ username){ $ referrer = $ _SERVER ['HTTP_REFERER']; //帖子提交來自哪裏? //如果有一個有效的推薦鏈接,並且它不是默認登錄屏幕 if(!empty($ referrer)&&!strstr($ referrer,'wp-login')&&!strstr($ referrer,'wp- admin')){ wp_redirect($ referrer。'?login = failed'); //讓我們追加一些信息(登錄=失敗)到主題的URL使用 exit; } } –