Скрыть панель управления от пользователей без прав администратора

21 мая 2012 г., 08:04:30
Просмотры: 25.7K
Голосов: 8

Возможно ли полностью скрыть панель управления от пользователей без прав администратора и предоставить им доступ только к страницам создания новых записей и редактирования существующих? Спасибо.

0
Все ответы на вопрос 4
0
18

Что касается простоты использования, особенно для администраторов WordPress, не слишком сильных в PHP, я поддерживаю рекомендацию плагина от brasoflo (Adminimize).

Для полноты картины, вот как это можно сделать программно:

/* Удаляем пункт "Консоль" из меню админки для не-администраторов */
function wpse52752_remove_dashboard () {
    global $current_user, $menu, $submenu;
    get_currentuserinfo();

    if( ! in_array( 'administrator', $current_user->roles ) ) {
        reset( $menu );
        $page = key( $menu );
        while( ( __( 'Dashboard' ) != $menu[$page][0] ) && next( $menu ) ) {
            $page = key( $menu );
        }
        if( __( 'Dashboard' ) == $menu[$page][0] ) {
            unset( $menu[$page] );
        }
        reset($menu);
        $page = key($menu);
        while ( ! $current_user->has_cap( $menu[$page][1] ) && next( $menu ) ) {
            $page = key( $menu );
        }
        if ( preg_match( '#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'] ) &&
            ( 'index.php' != $menu[$page][2] ) ) {
                wp_redirect( get_option( 'siteurl' ) . '/wp-admin/edit.php');
        }
    }
}
add_action('admin_menu', 'wpse52752_remove_dashboard');
21 мая 2012 г. 14:39:33
1

Вы можете использовать плагин Adminimize для этого.

С его помощью можно скрыть Консоль (и многое другое) в зависимости от роли пользователя. При скрытии Консоли можно указать, на какую страницу будет перенаправлен пользователь.

Я не уверен, но думаю, что нельзя изменить роли пользователей, чтобы заблокировать доступ к Консоли (поскольку даже роль с самыми низкими правами имеет к ней доступ).

Но если объединить Adminimize с плагином для управления ролями, можно добиться очень тонкой настройки административного интерфейса.

21 мая 2012 г. 13:56:22
Комментарии

@JohannesPille - нет ни одной установки WordPress, которую я сделал бы без Adminimize. И не могу нахвалиться этой плагином :)

brasofilo brasofilo
21 мая 2012 г. 14:45:41
1

Эти 2 страницы также являются частью панели управления! Если вы предоставляете доступ к редактированию записей, это означает, что вы даёте доступ к списку записей. Роль с наименьшими правами, подписчик, также имеет доступ к странице профиля, которая тоже является частью панели управления! Лучшим вариантом для вас будет форма добавления записей/редактирования профиля на фронтенде.

21 мая 2012 г. 08:14:17
Комментарии

Это зависит от того, как вы определяете понятие "дашборд" — термин, который довольно неоднозначен, даже в контексте WordPress. Он может относиться либо ко всему интерфейсу wp-admin (как вы, видимо, истолковали вопрос), либо к самой верхней странице меню админки. В последнем случае страницу меню можно скрыть.

Johannes Pille Johannes Pille
21 мая 2012 г. 14:30:39
0

вы можете использовать плагин под названием "User Role Editor".. Вы не можете избежать панели управления, чтобы предоставить им доступ к созданию новой записи.. Но вы можете ограничить их роль...

21 мая 2012 г. 10:47:49