我现在在网站上使用wp_login_form()
,当您正确登录时,会将用户重定向到相应的网址。
不幸的是,如果你在用户名/密码中犯了错误,它就会转发给你wp-login.php
,它会向用户发送信箱。并且会破坏一致的品牌体验,例如。
那么有人知道如何让它不这样做吗?
答案 0 :(得分: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'));
}
答案 1 :(得分: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');