Отключение доступа к wp-admin для подписчиков в WordPress
29 мар. 2013 г., 13:08:24
Просмотры: 14.5K
Голосов: 6
Я не хочу, чтобы пользователи с ролью subscriber могли входить через wp-admin.
Как вы предлагаете это реализовать?

Prakash Raman
609
Все ответы на вопрос
1
3
Вы можете удалить разрешение Read
. Это предотвратит любой доступ к wp-admin.
function remove_read_wpse_93843(){
$role = get_role( 'subscriber' );
$role->remove_cap( 'read' );
}
add_action( 'admin_init', 'remove_read_wpse_93843' );
См. примечание в Codex о том, что этот код нужно выполнить только один раз.
Затем вам нужно скрыть панель администратора.
function hide_admin_wpse_93843() {
if (current_user_can('subscriber')) {
add_filter('show_admin_bar','__return_false');
}
}
add_action('wp_head','hide_admin_wpse_93843');
И, вероятно, перенаправлять подписчиков при входе:
function redirect_sub_to_home_wpse_93843( $redirect_to, $request, $user ) {
if ( isset($user->roles) && is_array( $user->roles ) ) {
if ( in_array( 'subscriber', $user->roles ) ) {
return home_url( );
}
}
return $redirect_to;
}
add_filter( 'login_redirect', 'redirect_sub_to_home_wpse_93843', 10, 3 );
Другие попытки доступа к wp-admin
приведут к почти пустому экрану с сообщением "У вас недостаточно прав...".
Это базовое решение, но, думаю, оно поможет вам достичь цели.

s_ha_dum
65.5K
29 мар. 2013 г. 16:11:12
Комментарии
remove_cap()
сейчас работает по-другому. Переработайте ваш код согласно одному из примеров на этой странице.

22 мар. 2018 г. 10:44:12
Похожие вопросы