在我的自定义Wordpress主题中,我有自定义登录表单:
<form method="post" action="<?php bloginfo('url') ?>/wp-login.php" name="login">
<div class="login-form-container resp-hidden">
<div class="login-form-container-inner">
<h3 class="form-title"><?php echo __('Login', 'louise'); ?></h3>
<label for="user_login">
<?php echo __('User name or e-mail', 'louise'); ?>: </label>
<input class="para-content" type="text" name="log" placeholder="" value="<?php echo esc_attr(stripslashes($user_login, $user_email)); ?>" size="20" id="user_login" tabindex="11" required>
<label for="user_pass">
<?php echo __('Password', 'louise'); ?>: </label>
<input class="para-content" type="password" name="pwd" value="" size="20" id="user_pass" tabindex="12" required/>
<label for="rememberme"> </label>
<div class="buttons">
<?php do_action('login_form'); ?>
<input type="submit" name="user-submit" value="<?php echo __('Log in', 'louise'); ?>" tabindex="14" class="signupbtn" />
<input type="hidden" name="redirect_to" value="<?php echo icl_get_home_url() ; ?>" />
<input type="hidden" name="user-cookie" value="1" />
</div>
</div>
</div>
</form>
它完成了工作,但当我尝试使用不同于默认语言的登录时出现问题。登录重定向到首页,离开非活动网址:http://test.com/ ?lang = en / wp-login.php 我使用两种语言的WPML插件,默认一个是lt_LT和en_US as额外。
我整个周末都在挖掘,但没有找到有效的解决方案。为了说清楚,如果我必须翻译核心WP wp-login.php页面,我就无法获得o,是否有绕过wp-login.php并将用户直接重定向到主页的快捷方式?
非常感谢所有可能的帮助和建议。
展望未来,
答案 0 :(得分:1)
首先将表单操作更改为
<?php echo $_SERVER['REQUEST_URI']; ?>
并在表单
后使用此PHPif (isset($_POST['user-submit'])) {
login_auth($_POST['log'], $_POST['pwd']);
}
并将此功能添加到functions.php
function login_auth( $username, $password ) {
global $user;
$current_cookie = esc_attr( $_COOKIE['_icl_current_language'] );
$url = '/'.$current_cookie;
$login_page = site_url($url);
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) ) {
echo $user->get_error_message();
}
if ( !is_wp_error($user) ) {
wp_redirect($login_page);
}
}
答案 1 :(得分:0)
毕竟,这是我的解决方案,在我的情况下工作。似乎问题是WPML插件设置的语言参数。可以检查当前链接是否有printf("%d", K==Y);
printf("%d", K==Y);
并使用默认的wp-login网址进行更改。
?lang=en/