Respostas:
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');
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.
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.