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

8

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

сойка
источник

Ответы:

17

Что касается простоты использования, особенно для администраторов WordPress, не слишком прочных в PHP, я рекомендую плагин brasofloАдминистрирование» ).

Для полноты картины это будет сделано программно:

/* Remove the "Dashboard" from the admin menu for non-admin users */
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');
Йоханнес Пилле
источник
3

Вы можете использовать плагин Администрирование, чтобы сделать это.

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

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

Но если вы объедините Администрирование с плагином Role, вы сможете получить очень хорошо настроенный административный интерфейс.

brasofilo
источник
@JohannesPille - я не установил ни одной установки WordPress, которая бы не запускала «Администрирование». И не могу похвалить его достаточно :)
brasofilo
0

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

Рутвик Гангурде
источник
1
Это зависит от того, как вы определяете «панель мониторинга», термин, который является двусмысленным, даже в контексте WP. Он может относиться либо ко всему wp-admin, который, как вам кажется, интерпретировал вопрос, либо к самой верхней странице меню администратора. В последнем случае страница меню может быть скрыта.
Йоханнес Пилле
0

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

Насир Зия
источник