我有一个wordpress多站点网络,当我在多站点网络的任何子站点中添加用户时,有没有办法在子站点中自动添加用户。
该网站仅限公共访问其组织内部网站点。现在,用户可以在单一登录中查看子网站,但我想限制网站的某些部分来自子网站。
我添加了一个函数来在正文中附加用户角色,只有用户注册的站点 - 相应的角色正在显示,当我手动添加他的角色类附加的用户时。
我使用以下代码:
skill_sets
结果是:
CREATE TABLE IF NOT EXISTS `skill` (
`id` int(6) unsigned NOT NULL,
`name` varchar(16) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `skill_set` (
`id` int(6) unsigned NOT NULL,
`skill_id` int(6) unsigned NOT NULL,
PRIMARY KEY (`id`, `skill_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `default_role` (
`skill_set_id` int(6) unsigned NOT NULL,
`role_id` int(6) unsigned NOT NULL,
PRIMARY KEY (`skill_set_id`, `role_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `role` (
`id` int(6) unsigned NOT NULL,
`name` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `skill` (`id`, `name`) VALUES
('1', 'python'),
('2', 'javascript'),
('3', 'ec2'),
('4', 'docker'),
('5', 'management');
INSERT INTO `skill_set` (`id`, `skill_id`) VALUES
('1', '1'),
('2', '2'),
('3', '1'),
('3', '2'),
('4', '3'),
('5', '4'),
('6', '1'),
('6', '2'),
('6', '5'),
('7', '3'),
('7', '4'),
('7', '5'),
('8', '1'),
('8', '2'),
('8', '3'),
('8', '4'),
('8', '5');
INSERT INTO `default_role` (`skill_set_id`, `role_id`) VALUES
('1', '1'),
('2', '1'),
('3', '2'),
('4', '3'),
('5', '3'),
('6', '2'),
('6', '4'),
('7', '3'),
('7', '4'),
('8', '5');
INSERT INTO `role` (`id`, `name`) VALUES
('1', 'Junior Software Engineer'),
('2', 'Software Engineer'),
('3', 'DevOps Engineer'),
('4', 'Tech Lead'),
('5', 'CTO');
在其他网站中,此用户角色未附加,因为他不是该子网站中的用户。 在这种情况下,结果是:
add_filter('body_class','add_role_to_body');
function add_role_to_body($classes) {
$current_user = new WP_User(get_current_user_id());
$user_role = array_shift($current_user->roles);
$classes[] = 'role-'. $user_role;
return $classes;
}
我的主要问题是: 当我在多站点网络中的任何子站点中添加用户时,可以在子站点中以任何方式自动添加用户,或者在用户访问该特定子站点时自动添加到该子站点中。或者任何功能来检查网络站点中用户的角色,并将角色类附加到正文标记中。