Как мы ограничим доступ к административной области WP для всех пользователей, кроме администраторов?
Пользователи нашего сайта имеют собственные страницы профиля, которые выполняют все необходимые им функции.
Таким образом, администратор должен быть закрыт для всех, кроме администраторов.
Как это сделать?
Ответы:
Мы можем подключиться к
admin_init
действию и проверить, является ли пользователь администратором, с помощьюcurrent_user_can()
функции, чтобы увидеть, может ли текущий пользовательmanage_options
, что может сделать только администратор.Этот код при вставке в ваш файл functions.php отобразит сообщение, когда не администратор попытается получить доступ к панели инструментов:
Если вы предпочитаете, вы можете обеспечить лучший пользовательский опыт, перенаправив пользователя на домашнюю страницу:
Если вы хотите перенаправить пользователя на страницу его профиля, замените
home_url()
приведенный выше код ссылкой.источник
manage_options
возможность является приемлемым способом проверки для администратора. Даже Марк Jaquith говорит такmanage_options
, что делать могут только «администраторы», и это неправда,manage_options
это возможность, которую можно удалить из роли администратора или назначить другим ролям пользователя. Важно знать, что вы хотите сделать, и выбрать лучший путь. Смотри мой ответ, я объясняю это.manage_options
сmanage_network
. Последний будет отключать панель мониторинга также для «администраторов сайта» по умолчанию, но оставит доступ доступным для супер администраторов (сетевых администраторов).Вы можете написать плагин и подключиться
admin_init
.Кодекс фактически дает пример с функцией, которую вы ищете.
http://codex.wordpress.org/Plugin_API/Action_Reference/admin_init#Example:_Access_control
источник
Некоторые из приведенных ответов могут быть хорошими в большинстве ситуаций, но я думаю, что ни один из них не гарантирует точного выполнения заданного, потому что ни один из ответов не проверяет роли пользователей, они проверяют возможности и возможности, которые можно назначать и удалять роли форм. Итак, чтобы дать точный ответ, необходимо проверить роли пользователя, а не возможности:
Если вы хотите проверить, что пользователь имеет возможность «manage_options», вы можете. На самом деле, это лучший вариант в большинстве случаев. Хотя эта возможность по умолчанию связана с пользователями-администраторами, ее можно удалить из роли администратора или назначить другим ролям пользователей. Вот почему в большинстве случаев проверка того, что пользователь может или не может сделать, лучше проверки роли пользователя. Таким образом, в большинстве случаев проверка возможностей должна быть выбрана способом, но вы должны прояснить эту концепцию и выбрать лучший вариант для вашей ситуации и цели:
источник
Попробуйте подключить плагин Администрирование .
Вы можете запереть вещи довольно хорошо с этим.
Вы также можете попробовать настроить доступ через файл htaccess.
источник
источник
'administrator'
это не возможность. Это работает только для поддержания обратной совместимости. Проверьте наличие'update_core'
других возможностей администратора.Поместите эти строки в свой
functions.php
источник
Попробуйте это, никогда через ошибки конечного пользователя. Против хорошего UX. Этот код перенаправляет их на дом.
источник
Я хотел бы использовать WP Frontend и установить его для всех, кроме администраторов.
источник