Как запретить пользователям входить в админку?
Если по каким-то причинам вы не хотите, чтобы пользователи сайта могли входить в админку (любые ссылки в wp-admin), то сделать это очень просто. Достаточно лишь добавить в файл functions.php вашей темы следующий код:
//запрет доступа к админке start function wph_noadmin() { if (is_admin() && !current_user_can('administrator')) { wp_redirect(home_url()); exit; } } add_action('init', 'wph_noadmin'); //запрет доступа к админке end |
И это все. В админку вашего сайта зайти смогут только администраторы, а все остальные пользователи при попытке открыть любую ссылку в админке будут перенаправлены на главную страницу вашего сайта. Не забудьте только убрать верхнюю панель WordPress для пользователей, так как в ней содержатся ссылки на админку (как минимум ссылка на профиль пользователя и ссылка на консоль).
Спасибо, чувак, очень выручил
Отлично - выручил . Это лучшее решение что я нашел.
Помогите пожалуйста, у меня такая проблема: в админку сайта (site.com/wp-admin ) могут заходить только администраторы, остальные пользователи при входе перенаправляют на главную. Как дать доступ к админке ( например для редакторов или авторов ) ,
Спасибо за совет. Очень помог!
Супер! НО у меня пользователь перестает видеть гугл карты, как только я применяю данный код, как это связано?
это никак не может быть связано, даже теоретически.
Очень даже может быть связано, поверь мне
не может, с чего вдруг верить тебе?
Привет всем,
Подскажите пожалуйста, есть на сайте кастомная форма для регистрации и логина и есть кабинет (dashboard) для двух ролей пользователей,
Так вот с гостями все нормально, а есть вторая роль пользователей и если под ней они заходят в кастомный кабинет - все ок, но они так же могут зайти в админ панель (wp-admin) и там очень много всего им не нужного отображается =)
Как исправить?
Доступ в админку закрывал, но тогда никто зайти не может вообще, кроме админа.
а все, решил вопрос плагином Remove Dashboard Access.
перекрывает всем доступ в админку кроме админа
Отлично! Сделал. Вышел из админпанели. Проверил, как посетитель.Всё работает.Теперь не могу зайти в админку:) Я админ.
вашсайт\wp-login.php
Во как:) Сам я что-о не допёр... Но возник вопрос - теперь и wp-login.php также прятать? Ведь,это точно такое же окно, как и wp-admin. Объясните, пожалуйста. Очень мне ваш вариант понравился...
этот код прячет не вход, а саму админку. если шифровать страницу входа - то множество плагинов для этого есть. а смысл именно этого кода чтобы пользователи не шастали в админке.
А вот если у меня на сайте нет регистрации посетителей. Мне есть о чём беспокоиться? Ну, кроме ВХОДА в wp-admin?
закройте доступ в админку и к wp-login.php по ip, если у вас статический ip. это защитит от ботов, перебирающих пароли.
Так у меня ж нет регистрации, от кого закрывать админ-ПАНЕЛЬ?
так сказал же - от ботов.
вы логи сервера гляньте, там каждый день сотни и тысячи попыток подобрать пароль. такое с каждым сайтом на wordpress происходит.
Ясно. Спасибо. Что лучше сделать //полное скрытие панели от всех кроме админов start или Как запретить пользователям входить в админку? Оба варианта от вас.
панель и админка разные вещи. в любом случае у вас регистрации нет, поэтому панель пользователи не видят.
Понемногу начинаю разбираться. Очень вам благодарен. хороший сайт. У меня такой случился коллапс - поставил //запрет доступа к админке start. Работает, открывается главная страница сайта. Чудесно. НО... перестали ставиться Лайки. А мне бы хотелось оставить эту фишку...
Если вдруг кто случайно так же как и я натолкнулся на этот пост, то имейте ввиду при добавлении этой конструкции перестанут работать ajax запросы к admin-ajax.php для всех гостей, а это может сломать работу некоторых плагинов! (Например счетчик просмотров страницы, который работает через ajax если сайт обмазан кешем)
Чтобы этого не случилось нужно сделать проверку, что запрос не является ajax.
Спасибо! Это именно то, что нужно!
Я бы порекомендовал не сильно это использовать, так как начинаются проблемы с доступом к файлу admin-ajax.php у авторизированных пользователей.
Проверенный код от Миши Рудрастых:
function true_wp_admin_block() {
if (!current_user_can('administrator')) { // если не администратор
header('HTTP/1.0 404 Not Found');
exit();
}
}
add_action('admin_menu', 'true_wp_admin_block');
ссылка на материал: https://misha.agency/wordpress/disable-wp-admin.html