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网站后台会提示:抱歉,您不能访问此页面。
这时回到网站进行测试,发现主网站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’ ) );
已经改好的default-constants.php1_20240414144837a5953.rar
上面例子中所有的域名duoaili.com请自行替换成你的域名
1.本文部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
2.若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
3.如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间删除帖子!
4.本站提供的资源来源网络收集或网友发布到本站,仅供学习研究之用,版权归原著所有,切勿用于商业用途和非法行为否则后果自负。请在24小时之内自行删除!
5.本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6.本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间退回积分、金币或者更新。