Функция IS_SUPER_ADMIN() в WordPress 3.0.0
Функция is_super_admin() позволяет определить, является ли пользователь администратором сайта. Это полезно в тех случаях, когда нужно настроить доступ для различных пользователей в WordPress.
Время выполнения
- 1 раз — 0.000055 секунд (очень быстро)
- 50000 раз — 0.18 секунд (очень быстро)
- Версии: PHP 7.1.2, WP 4.7.5
Описание
Функция возвращает значение true, если пользователь является администратором, и false в противном случае.
Как использовать
is_super_admin( $user_id );
$user_id(int|false) — ID пользователя. Если не указать, функция проверит текущего пользователя. Значение по умолчанию —false.
Примеры использования
Пример 1: Проверка уровня доступа текущего пользователя
Если текущий пользователь является супер-администратором, будет выведено приветствие.
global $user_ID;
if( is_super_admin( $user_ID ) ) {
echo 'Привет, главный администратор сети!';
}
Пример 2: Удаление меню "Редактировать" для не супер-администраторов
Этот код удаляет меню "Редактировать" для пользователей, которые не являются супер-администраторами многосайтовой сети.
// Удаляет меню "Редактировать" для пользователей, которые не являются супер-администраторами
if ( ! is_super_admin() ) {
add_action( 'admin_init', 'wpdocs_remove_edit_menu' );
}
/**
* Удаление ссылки на редактирование профиля для не-супер-администраторов.
*/
function wpdocs_remove_edit_menu() {
remove_menu_page('edit.php');
}
Пример 3: Не рекомендуется использовать с WP 4.8 и выше
С момента выхода WordPress 4.8 использование функции is_super_admin не рекомендуется. Вместо этого лучше использовать проверку на возможность setup_network.
if ( current_user_can( 'setup_network' ) ) {
// выполнять действия
}
Изменения в коде
Функция is_super_admin была введена в версии 3.0.0 и её код выглядит следующим образом:
function is_super_admin( $user_id = false ) {
if ( ! $user_id ) {
$user = wp_get_current_user();
} else {
$user = get_userdata( $user_id );
}
if ( ! $user || ! $user->exists() ) {
return false;
}
if ( is_multisite() ) {
$super_admins = get_super_admins();
if ( is_array( $super_admins ) && in_array( $user->user_login, $super_admins, true ) ) {
return true;
}
} elseif ( $user->has_cap( 'delete_users' ) ) {
return true;
}
return false;
}
Связанные функции
add_role()author_can()current_user_can()get_editable_roles()get_role()grant_super_admin()map_meta_cap()remove_role()user_can()wp_roles()WP_Roles::add_cap()WP_User::add_cap()
Эти функции позволяют вам управлять ролями и возможностями пользователей в WordPress. Они могут быть полезны в процессе настройки доступа для разных групп пользователей.