Ocultar painel de usuários não administradores

8

É possível ocultar completamente o painel dos usuários não administradores e conceder-lhes acesso apenas à página Nova postagem e edição de postagens? Obrigado.

Jay
fonte

Respostas:

17

Quanto à facilidade de uso, especialmente para administradores do WordPress não muito firmes no PHP, eu recomendo a recomendação do plugin do brasoflo ( Adminimize ).

Por uma questão de integridade, é assim que seria feito programaticamente:

/* 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');
Johannes Pille
fonte
3

Você pode usar o plugin Adminimize para fazer isso.

É possível ocultar o painel (e muitas outras coisas) com base na função do usuário. No caso de ocultar o painel, você pode definir para qual página o usuário será redirecionado.

Não tenho certeza, mas acredito que você não pode modificar as funções de usuário para bloquear o Painel (pois mesmo a função mais baixa tem acesso a ele).

Porém, se você combinar o Adminimize com um plug-in de Função, poderá obter uma interface administrativa otimizada.

brasofilo
fonte
@JohannesPille - não fiz uma única instalação do WordPress que não execute o Adminimize. E não pode elogie o suficiente :)
brasofilo
0

Essas duas páginas também fazem parte do painel! Se você está dando acesso para editar postagens, significa que você está dando acesso à lista de postagens. A função com menor capacidade, assinante, também tem acesso à página de perfil, que também faz parte do painel! Sua melhor opção seria um formulário de adição / edição de post de front-end.

Rutwick Gangurde
fonte
11
Isso depende de como você define "painel", um termo ambíguo, mesmo no contexto do WP. Pode se referir a todo o wp-admin, que parece ser como você interpretou a pergunta, ou à página do menu principal do administrador. Neste último caso, a página do menu pode estar oculta.
Johannes Pille
0

você pode usar um plugin chamado "User Role Editor". Você não pode evitar o painel para dar acesso à nova postagem. Mas você pode limitar a função deles ...

Nasir Zia
fonte