我尝试使用wp_signon创建登录表单。我是WordPress的新手。它没有重定向。我的代码是:
<?php
global $wpdb;
$username=$_POST['username'];
$password=$_POST['password'];
$creds = array();
$creds['user_login'] =$username ;
$creds['user_pass'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
wp_redirect('myurl here');
?>
<form action="" method="post"/>
<input type="text" name="username" placeholder="Username"/>
<input type="text" name="password" placeholder="Password"/><br>
<input type="submit" name="submit" value="Submit">
</form>
编辑:我在我的代码之后添加了这个:
if ( is_wp_error($user) )
echo $user->get_error_message();
当我尝试使用用户名和密码登录时,会显示一条消息:
错误:密码字段为空。 我输入正确的用户名和密码。这到底是什么原因?
答案 0 :(得分:1)
不是太远,但你有几个错误。
wp_redirect
您还应该查看我未在此处介绍的表单安全性。
<?php
if($_POST):
$username=$_POST['username'];
$password=$_POST['password'];
$creds = array();
$creds['user_login'] =$username ;
$creds['user_pass'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) ):
echo $user->get_error_message();
else:
wp_redirect('myurl here');
exit(); // you need to manually exit to get wp_redirect to work
endif;
endif;
?>
<form action="" method="post"/>
<input type="text" name="username" placeholder="Username"/>
<input type="text" name="password" placeholder="Password"/><br>
<input type="submit" name="submit" value="Submit">
</form>