使用GET变量而不是POST登录WordPress

时间:2011-10-26 作者:chifliiiii

我使用swish-e为我的公司网站和文档编制索引。问题是我需要通过get变量登录wordpress。Wordpress登录使用post变量,但我需要使用GET变量登录

http://mysite.com/wp-login.php?log=username&pwd=password

有什么简单的方法吗?我不介意更改核心文件,因为没有其他选择。

我查看了wp登录。php,但我不知道如何做到这一点。

当做

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

使用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 第页,然后logpwd 设置变量。如果没有,我们就照常进行。如果是,我们尝试登录,使用wp_signon. 如果我们成功了,我们会被重定向(无论你喜欢哪里),否则如果失败了,我们会做一些事情(可能会显示错误?)。

希望有帮助

结束

相关推荐

如何修改wp-login.php?action=注册表单的action属性?

我正试图在Wordpress中创建一个参考注册系统。其想法是,用户将单击包含wp登录的链接。php?操作=注册(&M);参考=12345我挂接到“register\\u form”操作挂钩,并添加一个参考号隐藏输入,注册时使用该参考号执行我需要的任何操作。当用户在注册表中出现错误时,就会出现此问题。问题是,只要register表单的action属性声明为“wp login.php?action=register”,并且没有ref参数,他就会被带到任何地方。我正在寻找一种方法来修改该动作属性。我已经查看了w