在WordPress中创建自定义登录系统

时间:2019-02-28 作者:John Mike

拜托,我需要帮助。

我编写了一个基本代码来创建登录表单,该表单将验证、检索数据并显示在我的仪表板上,但我面临以下挑战:

无论我输入的详细信息是否正确,它总是显示“无效的登录详细信息”

  • 我不知道如何检索数据并在我的仪表板中显示登录用户的数据,我希望像在PHP中一样使用会话,但我不知道如何做到这一点,请注意,我在数据库中创建了一个新表,并且我没有使用WordPress中的默认用户表。

    请在下面找到我的代码,我甚至还没有创建注销:

    function login_form ()
    {
    
        $loginform = \'\';
    
        $loginform .= \'<form method="post" action="example.com/dashboard/">\';
        $loginform .= \'<br />\';
        $loginform .= \'<br />\';
    
        $loginform .= \'<input type="text" size="40" name="email" placeholder="Email">\';
        $loginform .= \'<br />\';
        $loginform .= \'<br />\';
    
        $loginform .= \'<input type="password" size="40" name="passcode" placeholder="Password">\';
        $loginform .= \'<br />\';
        $loginform .= \'<br />\';
    
        $loginform .= \'<input type="submit" name="login_submit" value="Log In">\';
    
        $loginform .= \'</form>\';
        $loginform .= \'<br />\';
    
    
        return $loginform;
    
    }
    add_shortcode(\'my_login\',\'login_form\');
    
    
    
    function login_form_mail()
    {
        if (array_key_exists(\'login_submit\', $_POST))
        {
    
            global $wpdb;
    
            $loginusername = $_POST[\'email\'];
            $loginpassword = $_POST[\'passcode\']; 
    
            $retrieveUsername = $wpdb->get_var(" SELECT email FROM ".$wpdb->prefix."my_dataform WHERE email = \'$loginusername\'");
    
            $retrievePassword = $wpdb->get_var(" SELECT passcode FROM ".$wpdb->prefix."my_dataform WHERE passcode = \'$loginpassword\'");
    
           if ($loginusername == $retrieveUsername && $loginpassword == $retrievePassword)
           {
                echo \'Welcome ".$loginusername."\';
           }
           else
           {
                echo \'Invalid login details\';
           }
        }
    
    
    } 
    add_action(\'wp_head\',\'login_form_mail\');
    

  • 1 个回复
    SO网友:Rick Hellewell

    你是否从《抄本》开始(总是一个好去处):https://codex.wordpress.org/Customizing_the_Login_Form . 这里有很多关于如何自定义登录表单的帮助(以及其中的链接)。

    还有,通过谷歌找到了很多教程。

    您的代码假设了很多不真实的事情。WP中的表单与PHP/HTML中的表单不同。如果您正在访问WP user表,则获取登录身份验证的查询与您尝试的不同。并且您对自己数据库的查询也有错误-您的“And”条件格式不正确。

    我建议你从上面的Codex链接开始,然后看看关于这个主题的所有教程,而不是提供所有的答案,也不是因为这个主题上的所有googles而重新发明轮子。

    也不清楚您是否希望有一个单独的用户表-WP用户表有什么不符合您的需要?您可以将用户角色添加到WP user表中,以自定义访问级别。

    因此,需要更多的细节。这个问题的范围有点广。

    相关推荐

    Login logout below menu bar

    我想在菜单上方显示登录/注销链接,因为我的主题没有此功能。在右上角登录/注册,手机版中也应显示相同的内容。我正在使用HAPPYTHEMES的subscribe pro主题。您可以在此处查看演示版本:https://www.happythemes.com/demo/?theme=subscribe-pro