WordPress中的自定义用户管理

时间:2017-12-20 14:29:14

标签: php wordpress buddypress

我有一个注册用户的PHP网站。现在我要在子域中创建一个WordPress站点。现在,我想在新的WordPress网站上使用我现有的用户数据。

简单地说,

www.example.com是我的网站。它有一些注册用户。这是用PHP构建的,我在桌面上维护用户数据。现在我想用WordPress创建wp.example.com(Buddy Press)。现在我希望我的现有用户登录并使用此WordPress站点。有可能吗?

1 个答案:

答案 0 :(得分:0)

您可以通过向wordpress登录过程添加新操作来将两种服务相互组合。为此,需要执行以下步骤:

  1. 通过向wp_login添加一个优先级至少为11但低于30的操作来覆盖登录过程:

    add_action('wp_login', 'yourLoginFunction', 11);
    
  2. 创建一个REST API或任何其他形式的API,您的wordpress服务器可以在其他服务器上请求用户凭据:

    function yourLoginFunction($username, $user) {
        if (!is_empty($user)) {
            return $user; // User is already logged in.
        }
        $password = $_POST['password'];
        // call API on other server. Provide the given userdata from POST
        $userResult = callYourApi($username, $password);
        if ($userResult !== null) {
            $user = get_user_by('login', $username);
            if ($user === false) {
                //create new user
            }
            return $user;
        }
        return false;
    }
    
  3. 像这样,您的用户可以使用您的第一页的帐户并登录您的wordpress页面。请记住,将在wordpress网站上为他创建另一个用户,因此密码更改或类似的任何内容将无效,除非您为其编程同步。