WordPress : créer un tableau de bord réellement personnalisé

Cet article est une traduction et une adaptation de l’article “How To Create A WordPress Custom Dashboard Page” publié par Rémi Corson : remicorson.com

Dans ce tutoriel, il ne s’agit pas uniquement de masquer ou d’afficher certaines parties (metaboxes) du tableau de bord, mais, bel et bien, de remplacer le tableau de bord en entier.

Comment personnaliser réellement le tableau de bord de WordPress

Pour ce faire, nous allons créer une extension.

Etape n°1 : Création de l’extension WordPress

Ouvrez le dossier des plugins (dans le dossier wp-content, mais vous le saviez déjà), et créez un nouveau dossier appelé «sweet-custom-dashboard»; ensuite, à l'intérieur de ce dossier, créez un nouveau fichier appelé «sweet-custom-dashboard.php». Et, pour finir, ouvrez ce fichier nouvellement créé.

Pour déclarer le plugin, il suffit d'ajouter ce code dans le fichier sweet-custom-dashboard.php :

Maintenant, nous avons besoin de définir une constante pour l'URL du plugin; nous en aurons besoin plus tard. Ajoutez ce code dans le fichier sweet-custom-dashboard.php :

On crée ensuite la classe principale du plugin :

Etape n° 2 : le constructeur

Dans la deuxième étape, nous devons ajouter une action qui ne se produira que si l'utilisateur est sur la page de tableau de bord. Pour ce faire, remplacer la fonction constructor par ce code :

En ajoutant ce code, nous disons à WordPress que nous voulons charger la fonction rc_get_screen () lorsque index.php est chargé (index.php est la page du tableau de bord). Nous indiquons également à WordPress d’enregistrer une nouvelle page de type tableau de bord. Celle que nous allons utiliser dans la redirection. La prochaine étape est la construction de la fonction rc_redirect_dashboard ().

Etape n° 3 : la redirection du tableau de bord

La fonction rc_redirect_dashboard () est assez simple. Son but est de rediriger l'utilisateur vers une page personnalisée quand il veut accéder au tableau de bord par défaut. Pour ce faire, nous devons vérifier si nous sommes sur la droite de l'écran (lire «page») en utilisant la fonction get_current_screen (). Lorsque cette fonction appelée depuis le hook “admin_init” renvoie NULL, la fonction “rc_dashboard_redirection ()” est invoquée. Voici le contenu de la fonction :

Ce code est facile à comprendre : si nous sommes dans l'administration du site, et si l'écran actuel est «tableau de bord», alors nous forçons la redirection vers un fichier appelé “custom_dashboard.php”.

Enregistrer la (nouvelle) page du tableau de bord

Il est maintenant temps d'enregistrer la nouvelle page du tableau de bord. Pour ce faire, nous devons ajouter deux fonctions: l'une pour enregistrer la page dans le menu WordPress et l'autre pour remplir la page de contenu :

Etape N° 4 : la création d’un tableau de bord totalement personnalisé

L’idée de cette extension est de proposer un tableau de bord totalement personnalisé aux utilisateurs. Pour cela, créez un fichier “custom_dashboard.php” dans le répertoire de l’extension (“sweet-custom-dashboard”). Ensuite, ouvrez ce fichier et ajoutez ce code :

Le premier require_once first () charge WordPress, et, en ajoutant cette simple ligne, vous êtes maintenant en mesure d'utiliser toutes les variables WordPress ou toutes les fonctions.

Les deux autres require_once permettent de charger les fonctions nécessaires pour afficher toutes les fonctionnalités du back-office de WordPress.

Tout ce qu'il faut maintenant, c'est de créer le contenu de notre tableau de bord personnalisé. Dans cet exemple, nous avons juste un menu avec 3 liens qui seront affichés sous forme d'onglets, et deux paragraphes, dont une fois une image. Voici le code :

Et enfin, nous devons charger le pied de page d'administration de WordPress. Pour ce faire, ajoutez simplement cette ligne à la fin du fichier :

Et ... c'est tout ! Le plugin fonctionne très bien, mais il ya bien sûr de nombreuses façons de l'améliorer, par exemple, vous pouvez ajouter des feuilles de style personnalisées et des fichiers javascript, ou vous pouvez ajouter un peu de vérification supplémentaire pour afficher le tableau de bord personnalisé pour certains rôles d'utilisateurs seulement ...

Notez que ce plugin est disponible sur WordPress !