[技术]两个wordpress如何共享用户数据,wp用户数据互通教程

 2015-04-03 23:31:30   1    728次浏览

我们在使用不同的域名搭建网站或者是同一域名搭建子站的时候会使用到同样的用户数据避免用户重复注册,无论是一个或者两个wordpress网站,想实现这一点是很简单的。

这里为了照顾很多初学者, 就直接写明白操作流程,不需要大家懂为什么需要这么做,然后可以尽快的实现wp用户的数据互通。

首先,找到确定主站的数据表前缀,肯定是一个站A先建立,第二个站B再建立,B站要共享A站的用户,那么就打开B展的wp_config.php 文件,然后插入如下代码:

define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
这个地方一定要直接复制,避免字符出错,复制到等格式位置,然后数据用户都是共通的了,但是用A站账户登录B站会有这样的提示:
没有足够的权限
这个需要做两步,第一步在phpmyadmin中执行如下语句:
INSERT INTO `dbname`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '1', 'wpen_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');
第二步做一个插件,具体的代码如下:
<?php
/**
* @package user
* @version 1.6
*/
/*
Plugin Name: userdb
Description: 解决多wp网站用户共享,大杭州虹雅居原创插件,by:然子.
Version: 1.6
Author URI: https://www.jinshare.cn/
*/
//设置主站的前缀,其它网站都共享该网站的用户数据表
//添加功能到用户注册的钩子里
$main_prefix = 'wp_';

//设置子站的前缀,例如有两个子站,前缀分别为wpen_和wpcn_

$addi_prefixs = array('as_');

//添加功能到用户注册的钩子里

add_action( 'user_register', 'dup_capabilities' );

function dup_capabilities( $user_id ) {

global $main_prefix, $addi_prefixs;

//获取该用户权限的值,因为不同角色的值是不同的

if( $cap_val = get_user_meta( $user_id, $main_prefix.'capabilities', true ) ) {

if( count( $addi_prefixs ) > 0 ) {

foreach( $addi_prefixs as $prefix ) {

add_user_meta( $user_id, $prefix.'capabilities', $cap_val, true );

}

}

}

}
?>

完整复制并保存为 userdb.php然后上传的插件目录启用就可以了。
完美搞定多站用户数据互通问题,照做就OK,收工,如有疑问可以加我q 3988221207具体讨论。

蚂蚁森林为我浇水吧!

目前评论:1   其中:访客  1   博主  0

  1. avatar 大隻佬 0

    博主,我也是安照你的步骤 做,但是都行不通

评论加载中...

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: