10 améliorations pour le Dashboard de WordPress

Dans WordPress, le Tableau de bord ou l’Administration (Dashboard dans la terminologie de la version anglaise) est la partie du CMS où l’administrateur, c’est-à-dire vous, va publier du contenu (des articles, des pages…) et d’une manière plus générale contrôler et régler tout le comportement et l’aspect du site ou du blog : thèmes, extensions, réglages, taxinomie, utilisateurs, médias, menus, gestion des commentaires…

Avec quelques modifications dans le fichier functions.php du thème (ou mieux sur une version vierge à placer au niveau du dossier du thème enfant du thème principal), on va modifier le comportement du Dashboard de WordPress en lui ajoutant quelques fonctionnalités et améliorations très appréciables.

wordpress-oeil

Rester connecté à l’Administration de WordPress pour une durée plus longue

Par défaut, quand on coche la case de l’option, Se souvenir de moi, WordPress reste connecté pour une durée de deux semaines. Il est possible de modifier cette durée par celle de son choix, ce qui est pratique quand on travaille sur un ordinateur strictement personnel, qui n’est manipulé par personne d’autre.

wordpress-se-souvenir-de-moi

Le code ci-dessous est à ajouter au fichier functions.php de votre thème WordPress. La durée de connexion est indiquée à la ligne 3. Elle est exprimée en nombre de secondes, 1 an dans cet exemple.

[pastacode lang= »php » manual= »add_filter(%20’auth_cookie_expiration’%2C%20’stay_logged_in_for_1_year’%20)%3B%0Afunction%20stay_logged_in_for_1_year(%20%24expire%20)%20%7B%0A%20%20return%2031556926%3B%20%2F%2F%20Nb%20de%20secondes%20dans%20une%20ann%C3%A9e%0A%7D » message= » » highlight= » » provider= »manual »/]

Supprimer certains menus du Tableau de bord

Quand on gère le site WordPress d’un client, il est préférable de supprimer l’accès à certaines fonctionnalités sensibles accessibles depuis l’Administration de WordPress pour éviter que ledit client ne fasse des manipulations hasardeuses, comme par exemple supprimer le thème personnalisé que vous lui avez confectionné sur mesure.

Pour cela, faire un copier-coller du code ci-dessous dans le fichier functions.php qui se trouve dans le dossier du thème WordPress.

Dans cet exemple, tous les menus dont les noms en anglais se trouvent dans le tableau PHP appelé $restricted array sont retirés de l’Administration de WordPress.

[pastacode lang= »php » manual= »function%20remove_menus%20()%20%7B%0Aglobal%20%24menu%3B%0A%09%09%24restricted%20%3D%20array(__(‘Dashboard’)%2C%20__(‘Posts’)%2C%20__(‘Media’)%2C%20__(‘Links’)%2C%20__(‘Pages’)%2C%20__(‘Appearance’)%2C%20__(‘Tools’)%2C%20__(‘Users’)%2C%20__(‘Settings’)%2C%20__(‘Comments’)%2C%20__(‘Plugins’))%3B%0A%09%09end%20(%24menu)%3B%0A%09%09while%20(prev(%24menu))%7B%0A%09%09%09%24value%20%3D%20explode(‘%20’%2C%24menu%5Bkey(%24menu)%5D%5B0%5D)%3B%0A%09%09%09if(in_array(%24value%5B0%5D%20!%3D%20NULL%3F%24value%5B0%5D%3A%22%22%20%2C%20%24restricted))%7Bunset(%24menu%5Bkey(%24menu)%5D)%3B%7D%0A%09%09%7D%0A%7D%0Aadd_action(‘admin_menu’%2C%20’remove_menus’)%3B » message= » » highlight= » » provider= »manual »/]

Une Image à la une est obligatoire avant de pouvoir publier un article

Si la charte graphique de votre blog prévoit d’afficher une Image à la une pour illustrer chaque article, il peut être pratique d’empêcher la publication d’articles pour lesquels on a oublié d’en indiquer une. Le code ci-dessous est à copier dans le fichier functions.php du thème.

[pastacode lang= »php » manual= »add_action(‘save_post’%2C%20’wpds_check_thumbnail’)%3B%0Aadd_action(‘admin_notices’%2C%20’wpds_thumbnail_error’)%3B%0A%0Afunction%20wpds_check_thumbnail(%20%24post_id%20)%20%7B%0A%20%20%2F%2F%20change%20to%20any%20custom%20post%20type%20%0A%20%20if(%20get_post_type(%24post_id)%20!%3D%20’post’%20)%0A%20%20%20%20%20%20return%3B%0A%0A%20%20if%20(%20!%20has_post_thumbnail(%20%24post_id%20)%20)%20%7B%0A%20%20%20%20%2F%2F%20set%20a%20transient%20to%20show%20the%20users%20an%20admin%20message%0A%20%20%20%20set_transient(%20%22has_post_thumbnail%22%2C%20%22no%22%20)%3B%0A%20%20%20%20%2F%2F%20unhook%20this%20function%20so%20it%20doesn’t%20loop%20infinitely%0A%20%20%20%20remove_action(‘save_post’%2C%20’wpds_check_thumbnail’)%3B%0A%20%20%20%20%2F%2F%20update%20the%20post%20set%20it%20to%20draft%0A%20%20%20%20wp_update_post(array(‘ID’%20%3D%3E%20%24post_id%2C%20’post_status’%20%3D%3E%20’draft’))%3B%0A%0A%20%20%20%20add_action(‘save_post’%2C%20’wpds_check_thumbnail’)%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20delete_transient(%20%22has_post_thumbnail%22%20)%3B%0A%20%20%7D%0A%7D%0A%0Afunction%20wpds_thumbnail_error()%20%7B%0A%20%20%2F%2F%20check%20if%20the%20transient%20is%20set%2C%20and%20display%20the%20error%20message%0A%20%20if%20(%20get_transient(%20%22has_post_thumbnail%22%20)%20%3D%3D%20%22no%22%20)%20%7B%0A%20%20%20%20echo%20%22%3Cdiv%20id%3D’message’%20class%3D’error’%3E%3Cp%3E%3Cstrong%3EYou%20must%20add%20a%20Featured%20Image%20before%20publishing%20this.%20Don’t%20panic%2C%20your%20post%20is%20saved.%3C%2Fstrong%3E%3C%2Fp%3E%3C%2Fdiv%3E%22%3B%0A%20%20%20%20delete_transient(%20%22has_post_thumbnail%22%20)%3B%0A%20%20%7D%0A%7D » message= » » highlight= » » provider= »manual »/]

Remplacer le logo du Tableau de bord WordPress par le vôtre

Que ce soit pour un client ou pour son blog personnel, il est toujours plus agréable d’afficher son propre logo à la place de celui de WordPress sur le Tableau de bord de l’administration du site. Pour cela, copier le code ci-dessous dans le fichier functions.php du thème. Dans l’exemple, le nom de fichier du logo est custom-logo.gif qui doit être copié dans le répertoire images du thème.

[pastacode lang= »php » manual= »add_action(‘admin_head’%2C%20’my_custom_logo’)%3B%0A%0Afunction%20my_custom_logo()%20%7B%0A%20%20%20echo%20’%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A%20%20%20%20%20%20%20%20%20%23header-logo%20%7B%20background-image%3A%20url(‘.get_bloginfo(‘template_directory’).’%2Fimages%2Fcustom-logo.gif)%20!important%3B%20%7D%3C%2Fstyle%3E’%3B%0A%7D » message= » » highlight= » » provider= »manual »/]

Supprimer les Widgets du Tableau de bord de WordPress

Depuis la version 2.7 de WordPress, il est possible d’ajouter des informations directement au niveau du Tableau de bord de WordPress via des widgets. Le code ci-dessous à ajouter dans le fichier functions.php du thème supprime leur affichage.

[pastacode lang= »php » manual= »function%20example_remove_dashboard_widgets()%20%7B%0A%09%2F%2F%20Globalize%20the%20metaboxes%20array%2C%20this%20holds%20all%20the%20widgets%20for%20wp-admin%0A%20%09global%20%24wp_meta_boxes%3B%0A%0A%09%2F%2F%20Remove%20the%20incomming%20links%20widget%0A%09unset(%24wp_meta_boxes%5B’dashboard’%5D%5B’normal’%5D%5B’core’%5D%5B’dashboard_incoming_links’%5D)%3B%09%0A%0A%09%2F%2F%20Remove%20right%20now%0A%09unset(%24wp_meta_boxes%5B’dashboard’%5D%5B’normal’%5D%5B’core’%5D%5B’dashboard_right_now’%5D)%3B%0A%09unset(%24wp_meta_boxes%5B’dashboard’%5D%5B’side’%5D%5B’core’%5D%5B’dashboard_primary’%5D)%3B%0A%09unset(%24wp_meta_boxes%5B’dashboard’%5D%5B’side’%5D%5B’core’%5D%5B’dashboard_secondary’%5D)%3B%0A%7D%0A%0A%2F%2F%20Hook%20into%20the%20’wp_dashboard_setup’%20action%20to%20register%20our%20function%0Aadd_action(‘wp_dashboard_setup’%2C%20’example_remove_dashboard_widgets’%20)%3B » message= » » highlight= » » provider= »manual »/]

Afficher son logo sur la page de connexion à WordPress

Pour personnaliser la connexion à WordPress, il est possible de remplacer le logo affiché par défaut par celui de son choix. Pour cela, copier le code ci-dessous dans le fichier functions.php du thème. Dans l’exemple, le nom de fichier du logo est custom-login-logo.gif qui doit être copié dans le répertoire images du thème.

[pastacode lang= »php » manual= »function%20my_custom_login_logo()%20%7B%0A%20%20%20%20echo%20’%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A%20%20%20%20%20%20%20%20h1%20a%20%7B%20background-image%3Aurl(‘.get_bloginfo(‘template_directory’).’%2Fimages%2Fcustom-login-logo.gif)%20!important%3B%20%7D%0A%20%20%20%20%3C%2Fstyle%3E’%3B%0A%7D%0A%0Aadd_action(‘login_head’%2C%20’my_custom_login_logo’)%3B » message= » » highlight= » » provider= »manual »/]

Ajouter un Widget au tableau de bord de WordPress

On a vu un peu plus haut comment supprimer tous les Widgets du Tableau de bord de WordPress. Il est également possible d’y ajouter un Widget personnalisé en adaptant le code ci-dessous à copier dans le fichier functions.php du thème.

[pastacode lang= »php » manual= »function%20example_dashboard_widget_function()%20%7B%0A%09%2F%2F%20On%20affiche%20ici%20le%20texte%20de%20son%20choix%0A%09echo%20%22Bonjour%2C%20je%20suis%20un%20nouveau%20Widget%20sur%20le%20Tableau%20de%20bord%22%3B%0A%7D%20%0A%0A%2F%2F%20Create%20the%20function%20use%20in%20the%20action%20hook%0Afunction%20example_add_dashboard_widgets()%20%7B%0A%09wp_add_dashboard_widget(‘example_dashboard_widget’%2C%20’Example%20Dashboard%20Widget’%2C%20’example_dashboard_widget_function’)%3B%0A%7D%0A%2F%2F%20Hook%20into%20the%20’wp_dashboard_setup’%20action%20to%20register%20our%20other%20functions%0Aadd_action(‘wp_dashboard_setup’%2C%20’example_add_dashboard_widgets’%20)%3B » message= » » highlight= » » provider= »manual »/]

Modifier les couleurs du Tableau de bord de WordPress

Depuis le profil utilisateur de l’interface d’administration de WordPress, il est possible de modifier les couleurs du Tableau de bord. En ajoutant le code ci-dessous dans le fichier functions.php du thème, on peut aussi y parvenir, en choisissant précisément les couleurs. Dans l’exemple, la couleur de fond grise du Header est remplacée par un background bleu. Entre les balises <style> et </style> on définit les styles CSS à sa convenance pour personnaliser l’interface.

[pastacode lang= »php » manual= »function%20custom_colors()%20%7B%0A%20%20%20echo%20’%3Cstyle%20type%3D%22text%2Fcss%22%3E%23wphead%7Bbackground%3A%23069%7D%3C%2Fstyle%3E’%3B%0A%7D%0A%0Aadd_action(‘admin_head’%2C%20’custom_colors’)%3B » message= » » highlight= » » provider= »manual »/]

Afficher des messages d’aide

Pour le site d’un client, il est possible d’afficher des messages d’aide comme le fait le code ci-dessous.

[pastacode lang= »php » manual= »function%20my_admin_help(%24text%2C%20%24screen)%20%7B%0A%09%2F%2F%20Check%20we’re%20only%20on%20my%20Settings%20page%0A%09if%20(strcmp(%24screen%2C%20MY_PAGEHOOK)%20%3D%3D%200%20)%20%7B%0A%0A%09%09%24text%20%3D%20’Here%20is%20some%20very%20useful%20information%20to%20help%20you%20use%20this%20plugin…’%3B%0A%09%09return%20%24text%3B%0A%09%7D%0A%09%2F%2F%20Let%20the%20default%20WP%20Dashboard%20help%20stuff%20through%20on%20other%20Admin%20pages%0A%09return%20%24text%3B%0A%7D%0A%0Aadd_action(%20’contextual_help’%2C%20’my_admin_help’%20)%3B » message= » » highlight= » » provider= »manual »/]

Supprimer des Widgets en fonction du rôle d’un utilisateur

Sur un site ou un blog multi-utilisateur, il est parfois utile de cacher certains Widgets pour ne pas afficher des informations confidentielles à certains d’entre eux. Le code ci-dessous supprime la postcustom meta box pour le rôle “author” (role 2).

[pastacode lang= »php » manual= »function%20customize_meta_boxes()%20%7B%0A%20%20%20%20%20%2F%2Fretrieve%20current%20user%20info%0A%20%20%20%20%20global%20%24current_user%3B%0A%20%20%20%20%20get_currentuserinfo()%3B%0A%0A%20%20%20%20%20%2F%2Fif%20current%20user%20level%20is%20less%20than%203%2C%20remove%20the%20postcustom%20meta%20box%0A%20%20%20%20%20if%20(%24current_user-%3Euser_level%20%3C%203)%0A%20%20%20%20%20%20%20%20%20%20remove_meta_box(‘postcustom’%2C’post’%2C’normal’)%3B%0A%7D%0A%0Aadd_action(‘admin_init’%2C’customize_meta_boxes’)%3B » message= » » highlight= » » provider= »manual »/]

Sources : CatsWhoCodeLabnol