おそらく、このプラグインが役立つ可能性があります。http://wordpress.org/extend/plugins/extended-super-admins/と、各サイトに固有のグローバル変数$ super_adminsのハードコーディングとの組み合わせ。
サイト管理メニューが読み込まれるときにフックに設定できるはずです-まだそれを実施する方法がよくわかりません。これは、まもなく対処しなければならない問題の有望な解決策のようです。
http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.phpを参照し、グローバルな$ super_adminsが既に設定されている場合の戻り値に注意してください。
/ **
*スーパー管理者権限を付与します。
*
* @since 3.0.0
* @param int $ user_id
* /
function grant_super_admin($ user_id){
グローバル$ super_admins;
//グローバルsuper_adminsオーバーライドが定義されている場合、ここで行うことはありません。
if(isset($ super_admins))
falseを返します。
do_action( 'grant_super_admin'、$ user_id);
// get_super_admins()を使用する代わりに直接site_adminsを取得します
$ super_admins = get_site_option( 'site_admins'、array( 'admin'));
$ user = new WP_User($ user_id);
if(!in_array($ user-> user_login、$ super_admins))){
$ super_admins [] = $ user-> user_login;
update_site_option( 'site_admins'、$ super_admins);
do_action( 'granted_super_admin'、$ user_id);
trueを返します。
}
falseを返します。
}
/ **
*スーパー管理者権限を取り消します。
*
* @since 3.0.0
* @param int $ user_id
* /
関数revoke_super_admin($ user_id){
グローバル$ super_admins;
//グローバルsuper_adminsオーバーライドが定義されている場合、ここで行うことはありません。
if(isset($ super_admins))
falseを返します。
do_action( 'revoke_super_admin'、$ user_id);
// get_super_admins()を使用する代わりに直接site_adminsを取得します
$ super_admins = get_site_option( 'site_admins'、array( 'admin'));
$ user = new WP_User($ user_id);
if($ user-> user_email!= get_site_option( 'admin_email')){
if(false!==($ key = array_search($ user-> user_login、$ super_admins)))){
unset($ super_admins [$ key]);
update_site_option( 'site_admins'、$ super_admins);
do_action( 'revoked_super_admin'、$ user_id);
trueを返します。
}
}
falseを返します。
}