如何为wordpress使用不同的登录/注册机制
到目前为止,我已经集成了一个多站点wordpress,它在一个wordpress安装中使用了4个主要子域模板:college.mysite.com | jobs.mysite.com | advisors.mysite.com | answers.mysite.com wp用户只需登录一次,他们就可以立即访问任何wp模板 然而,我想要实现的是比这更复杂的一点。我不希望新用户和现有成员使用wordpress作为他们访问私人内容的主要用户界面 事实上,我已经完全禁用了注册和隐藏wp登录。 我想要一个更安全、更少公开的注册/登录 对于这种情况,我希望wordpress忽略默认的登录凭据,而是使用从同一wordpress数据库中提取的自定义db表名和hashmethod 例如,我有一个名为:humhub的yii平台。 对于使用wordpress的用户,他们需要通过humhub登录,并让wp读取db表名: 用户而不是wp_用户 需要为密码读取辅助数据库名称,因为humhub使用: 用户密码,而不是wp_用户中的默认值(用户密码) 我曾尝试将yii框架与wordpress集成,我曾尝试在yii框架内进行调整,使其分别读取两个数据库,但这远比通过更改wordpress文件中的默认登录表名称来重定向wp登录凭据复杂得多,如何为wordpress使用不同的登录/注册机制,wordpress,yii,login,credentials,Wordpress,Yii,Login,Credentials,到目前为止,我已经集成了一个多站点wordpress,它在一个wordpress安装中使用了4个主要子域模板:college.mysite.com | jobs.mysite.com | advisors.mysite.com | answers.mysite.com wp用户只需登录一次,他们就可以立即访问任何wp模板 然而,我想要实现的是比这更复杂的一点。我不希望新用户和现有成员使用wordpress作为他们访问私人内容的主要用户界面 事实上,我已经完全禁用了注册和隐藏wp登录。 我想要一个
请帮助我,让我们假设您有一些唯一的标识符,这样一个用户就不会意外地与另一个用户发生冲突(在YII/HumHub中) 您可以通过以下方式加载WordPress API
require_once("/path/to/wp-load.php");
//Found normally in the WordPress root directory alongside wp-config.php
然后,在HumHub中创建新用户时,您可以执行以下操作:
wp_create_user( $username, $password, $email );
//Where username is the unique identifier
//password is ideally a random hash
//email is their email if relevant
然后登录(假设您记住了用户名和密码!!)
然后,他们使用cookies等登录WordPress,没有任何头文件干扰HumHub
注意-如果WordPress和YII/HumHub之间存在名称冲突,则上述方法可能无效。如果是这种情况,您将得到一个包含冲突详细信息的php错误,并且必须尝试其他方法(例如Oauth插件)
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( !is_wp_error($user) ) {
ob_start(); //flush buffers - otherwise login won't work or user gets redirected to dashboard
$user_id = $user->ID;
wp_set_current_user( $user_id, null );
wp_set_auth_cookie( $user_id,true );
do_action( 'wp_login', $username );
ob_end_clean();
} else {
//Handle the login error
}