web-dev-qa-db-fra.com

Supprimer le tableau de bord, utiliser l'onglet Pages par défaut

Est-il possible de définir "Pages" comme onglet par défaut lorsque l'utilisateur se connecte à la zone d'administration? J'utilise une configuration très personnalisée, où aucun des widgets de tableau de bord n'est utile, donc ils sont masqués.

6
Tom

Le meilleur moyen consiste à rediriger les connexions des utilisateurs vers votre page et à supprimer le tableau de bord du menu, ce qui peut être fait avec 2 filtres.

Rediriger les connexions vers votre exemple d'écran de modification de page basé sur les rôles d'utilisateur, cet exemple utilise "author":

function dashboard_redirect($url) {
    global $current_user;
    // is there a user ?
    if(is_array($user->roles)) {
        // check, whether user has the author role:
        if(in_array('author', $current_user->roles)) {
             $url = 'edit.php?post_type=page';
        }
        return $url;
    }
}
add_filter('login_redirect', 'dashboard_redirect');   

Supprimer le "tableau de bord du menu admin"

add_action( 'admin_menu', 'Wps_remove_tools', 99 );
function Wps_remove_tools(){

    remove_menu_page( 'index.php' ); //dashboard

   }

ps. Vous pouvez également commander les éléments du menu admin en utilisant le même filtre.

7
Wyck

C'est comme ça que vous enlevez DASHBOARD sur votre Wordpress pleinement!

Pour ceux qui ne veulent pas utiliser de plug-in (s), Si vous avez installé un plug-in pour le supprimer. Vous obtiendrez également un menu supplémentaire sur ce plug-in. Quel est le point? Donc, vous devriez avoir le contrôle de ce que vous faites/avez fait


Insérer des codes sur functions.php

Redirect: (Lorsque l'utilisateur va à l'URL comme domain.com/wp-admin)

function dashboard_redirect(){
    wp_redirect(admin_url('edit.php?post_type=page'));
}
add_action('load-index.php','dashboard_redirect');

Redirige après la connexion: (Pour empêcher la journalisation des bugs de boucle)

function login_redirect( $redirect_to, $request, $user ){
    return admin_url('edit.php?post_type=page');
}
add_filter('login_redirect','login_redirect',10,3);

Supprimez le menu du tableau de bord: (Pourquoi l'avez-vous toujours?)

function remove_menus () {
    global $menu;
    $restricted = array(__('Dashboard'));
    //$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
    end($menu);
    while(prev($menu)){
        $value = explode(' ',$menu[key($menu)][0]);
        if(in_array($value[0]!= NULL?$value[0]:'',$restricted)){unset($menu[key($menu)]);}
    }
}
add_action('admin_menu','remove_menus');

Maintenant, quand l'utilisateur est connecté ou va avec une URL comme domain.com/wp-admin/ , ..

L'utilisateur sera redirigé vers domain.com/wp-admin/edit.php?post_type=page


7
l2aelba

Oui, utilisez Adminimize Plugin , supprimez le tableau de bord et laissez les pages être le premier écran lorsqu’une utilisation se connecte. Vous pouvez très bien le personnaliser et affiner le backend d’administrateur!

UPDATE

Utilisez le filtre 'login_redirect' et utilisez l'admin_url comme dans cet article de Wordpress Stackechange:

Modifier la page d'administration par défaut pour un ou des rôles spécifiques

0
keatch