A网站作为主网站,B网站作为子网站,B站要共享A站的用户,其他(文章、主题、设置等)数据不共享。新安装B网站,安装时数据库选择和A网站同一数据库下,A的数据库表头为wp_,B的改为和A的不一样,如:wpb_,

打开B站网站目录下的wp-config-sample.php文件,然后插入如下代码:

define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

b网站全新安装wordpress

这时候,用A网站的用户数据去登录B网站,可以登录,

但是A网站管理员登录B网站后,进B网站后台会提示:抱歉,您不能访问此页面。

 

以下是隐藏的内容,需要支付金额 1 元才能查看。已购买的用户如下:“jyktb、”,你可以任选其中一种方式:

************************************

 

这时回到网站进行测试,发现主网站id为1的用户已经可以登录B网站后台了

然后在A的functions.php 文件添加:

add_action( 'user_register', 'dup_capabilities' );
add_action('profile_update', 'dup_capabilities');
function dup_capabilities( $user_id ){
//在这里设置数据表前缀,所有站的数据库表前缀全部写上即可。
$prefixs = array('wp_','wpb_');
global $table_prefix;
$cap_val = get_user_meta( $user_id, $table_prefix.'capabilities',true);
if( !empty( $cap_val ) ) {
foreach( $prefixs as $prefix ){
if( $prefix != $table_prefix )
update_user_meta( $user_id, $prefix.'capabilities', $cap_val );
}
}
}

functions.php通常在主题根目录中例如:wp-content/themes/onenav/functions.php

然后管理员身份登录A站,后台用户编辑功能里把每个用户重新编辑一下,不修改任何信息即可。编辑过后,B网站就可以获取用户权限的值,因为不同角色的值是不同的。

这时候A站B站不同cookie,还未解决cookie问题,还不能无缝切换,接下来实现同步cookie。

我们打开A网站的wp-config.php文件将其中8行密钥,复制粘贴到B网站的wp-config.php文件中,

把B站的身份认证密钥替换为A的,保证A网站密钥与B密钥一模一样。

在A、B两站的wp-config.php文件里同时添加:

define('COOKIE_DOMAIN', 'duoaili.com');
    define('COOKIEPATH', '/');

打开A、B两站的 wp-includes/default-constants.php

把define( ‘COOKIEHASH’, md5( $siteurl ) );  改为 define( ‘COOKIEHASH’, md5( ‘duoaili.com’ ) );

上面例子中所有的域名duoaili.com请自行替换成你的域名

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。