Код: запретить пользователям доступ в админку
Очень часто меня спрашивают, как запретить обычным пользователям, не админам, доступ в админку WordPress. Делается это очень просто, причем для этого есть даже специальные плагины. Но зачем устанавливать плагин, когда можно самостоятельно прописать 5 строк кода?
Итак, в functions.php вашей темы или в любой php файл внутри /wp-content/mu-plugins/ вставляете следующее:
add_action('admin_init','users_redirect');
function users_redirect(){
if(!is_site_admin()){
wp_redirect(site_url());
die();
}
}
После этого все обычные пользователи будут перенаправляться на главную страницу сайта.
Скажите пожалуйста! А как к примеру можно запретить пользователю с ролью автор к админке кроме странички post_new.php ?
Вставил, но теперь и сам зайти не могу, что не так ?
А ваш аккаунт – админский?
вроде да, пользователь @admin как по умолчанию было.
Да, мой бок. Я исправил код – убрал проверку is_network_admin() – она работает только, если активирована сеть :)
Еще раз скопируйте и вставьте код.
спасибо, все заработало.
Это закрытия доступа к админке сети и сайта, да? А пользователи смогут попасть в админку своих блогов?
Обычные пользователи – не админы – не смогут. Это site_admin, то есть я боюсь, что обычные пользователи в свои собственные блоги тоже не смогут попасть. Чтобы исправить – надо просто добавить условие, что текущий авторизованный пользователь является админом блога, на который заходит.
Проверять с помощью current_user_can(‘manage_options’);
Условия внутри if можно заменить на:
Извините что не по теме, но есть ещё один вопрос:
Как исправить title страниц в BuddyPress? Чтобы всё было на русском, например, вместо “User Groups: Каталог | SITENAME” было “Группы (или сообщества): Все | SITENAME”. Заранее спасибо.
Дождитесь выхода BuddyPress 1.5.2 (через недели полторы). Там эта проблема исправлена.
Ну или сделайте вот это.
Здравствуйте, вставил Ваш код в word press 3.3.1 и не могу под админом зайти в админку, в чем может быть проблема?
Короче я сделал как написано внёс код а потом вообще админка пропала нету нету доступа(( решил через FTP зайти удалить текст но не помогло так же при запроса адреса выходит ошибка Fatal error: Call to undefined function is_site_admin() in /home/chenakin/svetcheb/wp-content/themes/twentyten/functions.php on line 518
Функция is_site_admin() была в WordPress MU:
http://codex.wordpress.org/WPMU_Functions/is_site_admin
В WordPress 3.0 и выше она объявлена устаревшей (и работает только в режиме Multisite). Вместо неё рекомендуется использовать функцию is_super_admin():
http://codex.wordpress.org/Function_Reference/is_super_admin
Вам поможет плагин Adminimize! С ним возможно отредактировать все для определенного пользователя. Отлично работает с BP.
Здравствуйте! я тут поставил ваш код теперь в админку вообще не смогу попасть выдает ошибку
Страница недоступна
Сайт
******* пока не может обработать этот запрос.
Какой-то ещё код мешает, происходит постоянный редирект.