2016-01-13 55 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; } } –