บางทีปลั๊กอินนี้สามารถช่วยได้: 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
* /
ฟังก์ชั่น grant_super_admin ($ user_id) {
$ super_admins ทั่วโลก;
// ถ้ามีการนิยามการแทนที่ทั่วโลก super_admins ไม่มีอะไรให้ทำที่นี่
ถ้า (isset ($ super_admins))
กลับเท็จ
do_action ('grant_super_admin', $ user_id);
// ดึงข้อมูล site_admins โดยตรงแทนที่จะใช้ get_super_admins ()
$ super_admins = get_site_option ('site_admins', อาร์เรย์ ('admin'));
$ user = ใหม่ 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 ('grant_super_admin', $ user_id);
กลับจริง
}
กลับเท็จ
}
/ **
* ยกเลิกสิทธิ์ผู้ดูแลระบบขั้นสูง
* * * *
* @since 3.0.0
* @param int $ user_id
* /
ฟังก์ชัน revoke_super_admin ($ user_id) {
$ super_admins ทั่วโลก;
// ถ้ามีการนิยามการแทนที่ทั่วโลก super_admins ไม่มีอะไรให้ทำที่นี่
ถ้า (isset ($ super_admins))
กลับเท็จ
do_action ('revoke_super_admin', $ user_id);
// ดึงข้อมูล site_admins โดยตรงแทนที่จะใช้ get_super_admins ()
$ super_admins = get_site_option ('site_admins', อาร์เรย์ ('admin'));
$ user = ใหม่ 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);
กลับจริง
}
}
กลับเท็จ
}