Có lẽ plugin này có thể giúp: http://wordpress.org/extend/plugins/extends-super-admins/ kết hợp với mã hóa cứng biến toàn cầu, $ super_admins, cụ thể cho từng trang web.
Nó sẽ có thể được đặt trong một hook khi menu quản trị trang được tải - không hoàn toàn chắc chắn làm thế nào để thực thi điều đó. Có vẻ như một giải pháp đầy hứa hẹn cho một vấn đề tôi sẽ phải tự mình giải quyết.
Xem: http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.php và lưu ý trả lại nếu toàn cầu, $ super_admins đã được đặt.
/ **
* Cấp đặc quyền siêu quản trị viên.
*
* @since 3.0.0
* @param int $ user_id
* /
hàm Grant_super_admin ($ user_id) {
$ super_admin toàn cầu;
// Nếu ghi đè super_admins toàn cầu được xác định, không có gì để làm ở đây.
if (isset ($ super_admins))
trả lại sai;
do_action ('Grant_super_admin', $ user_id);
// Lấy trực tiếp trang web_admins thay vì sử dụng get_super_admins ()
$ super_admins = get_site_option ('site_admins', mảng ('admin'));
$ user = WP_User mới ($ user_id);
if (! in_array ($ user-> user_login, $ super_admins)) {
$ super_admins [] = $ user-> user_login;
update_site_option ('site_admins', $ super_admins);
do_action ('cấp_super_admin', $ user_id);
trả lại đúng sự thật;
}
trả lại sai;
}
/ **
* Thu hồi đặc quyền siêu quản trị viên.
*
* @since 3.0.0
* @param int $ user_id
* /
hàm revoke_super_admin ($ user_id) {
$ super_admin toàn cầu;
// Nếu ghi đè super_admins toàn cầu được xác định, không có gì để làm ở đây.
if (isset ($ super_admins))
trả lại sai;
do_action ('revoke_super_admin', $ user_id);
// Lấy trực tiếp trang web_admins thay vì sử dụng get_super_admins ()
$ super_admins = get_site_option ('site_admins', mảng ('admin'));
$ user = WP_User mới ($ user_id);
if ($ user-> user_email! = get_site_option ('admin_email')) {
if (false! == ($ key = mảng_search ($ user-> user_login, $ super_admins))) {
bỏ đặt ($ super_admins [$ key]);
update_site_option ('site_admins', $ super_admins);
do_action ('revoking_super_admin', $ user_id);
trả lại đúng sự thật;
}
}
trả lại sai;
}