您的代码无法运行,因为WordPress不推荐使用3.0版(2010年6月)中的用户级别。
您要做的是创建一个插件,该插件在激活时为站点所有者创建一个新角色,该角色是管理员角色的克隆,但不能编辑插件或主题文件。这些能力是edit_plugins
和edit_themes
分别地
然后,在停用后,您希望将所有者重新分配到管理员角色。这样,他们只需停用插件,就可以完全重新控制自己的网站。
/**
* Plugin Name: WPSE 264483
*/
//* On activation, create an owner role that can do everything but edit themes/plugins
register_activation_hook( __FILE__, \'wpse_264483_activation\' );
function wpse_264483_activation() {
$administrator = get_role( \'administrator\' );
$owner = clone( $administrator );
unset( $owner->capabilities[ \'edit_plugins\' ] );
unset( $owner->capabilities[ \'edit_themes\' ] );
add_role( \'owner\', \'Owner\', $owner->capabilities );
}
//* On deactivation, re-assign all owners to administrators and remove owner role
register_deactivation_hook( __FILE__, \'wpse_264483_activation\' );
function wpse_264483_deactivation() {
$owners = get_users( [
\'role\' = \'owner\',
] );
foreach( $owners as $owner ) {
$owner->add_role( \'administrator\' );
$owner->remove_role( \'owner\' );
}
remove_role( \'owner\' );
}
我已经根据客户的要求为其启用了一个类似的插件,但我认为在没有他们完全知情和同意的情况下这样做是一个坏主意。毕竟这是他们的网站。