使用GET变量作为用户名和密码从来都不是一个好主意。但不管怎样,像下面这样的方法应该是可行的
if(isset($_GET[\'log\']) && isset($_GET[\'pwd\'])){
$creds = array();
$creds[\'user_login\'] = $_GET[\'log\'];
$creds[\'user_login\'] = $_GET[\'pwd\'];
$creds[\'remember\'] = true; //Do you want the log-in details to be remembered?
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
echo $user->get_error_message(); //Display error message if log-in fails
}
您可以将其放入模板中,然后使用该模板创建一个页面,以创建另一个登录页面。在这种情况下,您需要转到:http://[页面url]?日志=用户名(&N);pwd=密码
获取http://mysite.com/wp-login.php?log=username&pwd=password, 您必须在wp登录中输入上述代码。php核心文件。我建议使用钩子,而不是修改代码(下次更新WordPress时会覆盖代码)。喜欢,所以(把这个放在你的functions.php
或插件):
add_action(\'init\', \'GET_login\');
function GET_login() {
//Check that we are on the log-in page
if(in_array($GLOBALS[\'pagenow\'], array(\'wp-login.php\'))):
//Check that log and pwd are set
if(isset($_GET[\'log\']) && isset($_GET[\'pwd\'])):
$creds = array();
$creds[\'user_login\'] = $_GET[\'log\'];
$creds[\'user_password\'] = $_GET[\'pwd\'];
$creds[\'remember\'] = true; //Do you want the log-in details to be remembered?
//Where do we go after log-in?
$redirect_to = admin_url(\'profile.php\');
//Try logging in
$user = wp_signon( $creds, false );
if ( is_wp_error($user) ){
//Log-in failed
}else{
//Logged in, now redirect
$redirect_to = admin_url(\'profile.php\');
wp_safe_redirect($redirect_to);
exit();
}
endif;
endif;
//If we are not on the log-in page or credentials are not set, carry on as normal
}
Explanation:我们的函数使用
init
钩它首先检查我们是否在
./wp-login.php
第页,然后
log
和
pwd
设置变量。如果没有,我们就照常进行。如果是,我们尝试登录,使用
wp_signon
. 如果我们成功了,我们会被重定向(无论你喜欢哪里),否则如果失败了,我们会做一些事情(可能会显示错误?)。
希望有帮助