Accueil > WordPress > Optimisation technique de WordPress > L'admin de WordPress : le guide

L’admin de WordPress : le guide

wordpress admin

WordPress est un outil puissant, mais son administration laisse parfois à désirer. Certains menus et pages manquent d’ergonomie ou contiennent trop d’informations.

Pour corriger ou adapter ce CMS, tout est passé en revu dans ce guide : tri des colonnes, personnaliser l’affichage, supprimer des blocs, …

Avant-propos

Cet article contient beaucoup de modifications de l’administration de WordPress, et presque tout se passe dans le fichier functions.php. Afin de ne pas le surcharger, je vous conseille de placer TOUTES les fonctions de cet article à l’intérieur du code ci-dessous. Cela évitera d’exécuter inutilement certaines fonctions en naviguant sur votre site.

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »if%20(%20is_admin())%20%7B%0A%2F%2Fvos%20fonctions%0A%7D »/]

Le dashboard de WordPress

Conseils d’utilisation

Commençons par quelques conseils d’utilisation. Certains ne l’ont sans doute jamais vu, mais il existe un bouton « Options de l’écran » sur chaque page de l’administration de WordPress.

Option de l'écran

Ce menu va vous permettre de personnaliser facilement et rapidement vos pages. On peut ainsi:

  • activer ou désactiver les blocs présents sur la page d’accueil de l’administration WordPress ou sur les pages de rédaction:
Personnalisez l'administration de WordPress
Personnalisez l’administration de WordPress
  • modifier le nombre d’articles, de pages ou de mots clés affichés en même temps. Attention cependant pour cette dernière option. Si le nombre est trop élevé, l’administration de WordPress risque d’être très lente…
Nombre d'articles par page
Nombre d

En dehors des « Options de l’écran », il existe d’autres boutons utiles. WordPress fonctionne toujours de la même façon : il affiche des blocs, chacun ayant une fonction propre. Voici les possibilités qui vous sont données :

  • Réduire les blocs (ou widgets):
Réduire un bloc dans l'admin WordPress
Réduire un bloc dans l
  • Les déplacer avec un glisser/déposer:
Drag and Drop sous WordPress
Drag and Drop sous WordPress
  • Configurer vos widgets (vous ne verrez cette option que sur un nombre restreint de blocs):
Configurez certains Widgets WP
Configurez un Widget

Maintenant, nous allons modifier WordPress (les fameux hacks). Commençons par les plus connus (et qui ne sont donc pas de moi). Chacun de ces hacks se place dans le fichier functions.php de votre thème, entre les balises données au début de ce guide.

Wordpress Admin Footer
Un footer original pour votre admin

Le code est simple à comprendre. Remplacer « Contenu » par ce que vous voir apparaître dans le pied de page.

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »function%20remove_footer_admin%20()%20%7B%0A%20%20%20%20echo%20%22Contenu%22%3B%7D%0Aadd_filter(‘admin_footer_text’%2C%20’remove_footer_admin’)%3B »/]

Remplacer le logo de l’administration WP

Logo de l'admin de WordPress
Envie de changer de Logo ?

Créez votre logo, et placez-le dans le répertoire de votre thème. Avant d’appliquer le hack ci-dessous, penser à renommer « nomdevotreimage.gif ».

Pour les anciennes versions de WordPress, utilisez ce code :

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

Pour les versions de WordPress égales ou supérieures à la 3.3, utilisez plutôt ce code (merci à Djolhan d’Hdclic) :

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »add_action(‘admin_head’%2C%20’my_custom_logo’)%3B%0Afunction%20my_custom_logo()%20%7B%0A%20%20%20echo%20’%23wp-admin-bar-wp-logo%20%3E%20.ab-item%20.ab-icon%20%7B%20background-image%3A%20url(‘.get_bloginfo(‘template_directory’).’%2Fimages%2Fnomdevotreimage.gif)%20!important%3B%20%7D’%3B%7D »/]

Seul bémol, votre logo doit faire 32px par 32px obligatoirement pour les versions antérieures de WordPress et 20px par 20px pour les versions plus récentes. Le seul moyen de contourner cette limitation se trouve dans le fichier wp-admin/admin-header.php en enlevant ou modifiant width= »32″ height= »32″

Créer un widget

widget pour l'administration wordpress
Créez votre propre widget

Concevoir son Widget WordPress est simple,  et la technique peut aussi être utilisée lors de la création d’un plugin. Il y a deux champs à remplacer:

  • Titre du widget
  • Contenu

Le champ « echo Contenu » peut être remplacé par n’importe quelle autre fonction PHP dont vous auriez besoin.

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »function%20example_dashboard_widget_function()%20%7B%0A%20%20%20%20%20%20%20%20echo%20%22Contenu%22%3B%7D%0Afunction%20example_add_dashboard_widgets()%20%7B%0A%09wp_add_dashboard_widget(‘example_dashboard_widget’%2C%20’Titre%20du%20widget’%2C%20’example_dashboard_widget_function’)%3B%7D%0Aadd_action(‘wp_dashboard_setup’%2C%20’example_add_dashboard_widgets’%20)%3B »/]

Ajouter du texte dans l’aide WordPress

aide contextuelle de WordPress
Personnalisez l’aide

Le menu d’aide est particulièrement utile pour un site multi-utilisateur. On peut donc y ajouter son texte (ou toute autre fonction php).

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »if%20(%20is_admin())%20%7B%0A%20add_filter(‘contextual_help’%2C’custom_page_help’)%3B%0A%20function%20custom_page_help()%20%7B%0A%20echo%20%22%0A%0A%3Ch5%3Etitre%20de%20mon%20menu%20aide%3C%2Fh5%3E%0A%0A%22%3B%0A%20echo%20%22%0AContenu%20de%20mon%20fichier%20aide%0A%22%3B%7D%7D »/]

Supprimer des éléments de l’admin WordPress

Supprimer un menu

A partir de là, cela devient plus compliqué. Il est possible de supprimer des menus entiers de WordPress, sans désactiver pour autant les fonctionnalités correspondantes. On peut enlever deux éléments distincts:

  • Un menu global, par exemple « Articles »
  • Un sous menu, comme « Ajouter » dans le menu des « Pages »

Voici un exemple :

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »function%20remove_submenu()%20%7B%0Aglobal%20%24submenu%3B%0A%2F%2Fsupprimer%20le%20sous%20menu%20%22themes%22%0Aunset(%24submenu%5B’themes.php’%5D%5B10%5D)%3B%0A%7D%0A%0Afunction%20remove_menu()%20%7B%0Aglobal%20%24menu%3B%0A%2F%2Fsupprimer%20le%20menu%20principal%20%22Articles%22%0Aunset(%24menu%5B5%5D)%3B%0A%7D%0Aadd_action(‘admin_head’%2C%20’remove_menu’)%3B%0Aadd_action(‘admin_head’%2C%20’remove_submenu’)%3B »/]

Comme on peut le voir, on supprime un menu ou un sous-menu selon son ID. Le problème, c’est de la connaître. Je me suis donc amusé à fouiller le fichier menu.php, et voici donc la liste des menus par défaut. Avant toute chose, il faut savoir que :

  • Les intitulés de menus sont en anglais, mais je suis sûr que vous vous en sortirez.
  • Vous n’aurez pas forcément accès à tous ces menus (certains ne sont présents que sur des WordPress multi-sites).
  • Si le champ $i++ est présent, c’est que ce menu a une position variable en fonction de vos modifications. Il faut donc tenter un peu au hasard (par multiple de 5).
  • Même problème avec une taxonomie que vous auriez créez sur mesure. Pour ceux qui ne savent pas ce que c’est, c’est une modification permettant de classer vos contenus autrement qu’avec l’arborescence habituelle « Article« , « Catégorie« , « Mot clé« , « Page » et « Lien« .
  • Le menu utilisateur fonctionne différemment en fonction que vous soyez administrateur ou non.

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »%24menu%5B0%5D%0A%20%24submenu%5B’themes.php’%5D%5B10%5D%0A%20%24submenu%5B’ms-admin.php’%5D%5B1%5D%20%3D%20manage_network%0A%20%24submenu%5B’ms-admin.php’%5D%5B5%5D%20%3D%20manage_sites%0A%20%24submenu%5B’ms-admin.php’%5D%5B10%5D%20%3D%20manage_network_users%0A%20%24submenu%5B’ms-admin.php’%5D%5B20%5D%20%3D%20manage_network_themes%0A%20%24submenu%5B’ms-admin.php’%5D%5B25%5D%20%3D%20manage_network_options%0A%20%24submenu%5B’ms-admin.php’%5D%5B30%5D%20%3D%20manage_network%0A%24menu%5B1%5D%20%3D%20S%C3%A9parateur%0A%24menu%5B2%5D%20%3D%20Dashboard%0A%20%24submenu%5B’index.php’%5D%5B0%5D%20%3D%20Dashboard%0A%20%24submenu%5B’index.php’%5D%5B5%5D%20%3D%20My%20Sites%0A%20%24submenu%5B’index.php’%5D%5B10%5D%20%3D%20Updates%0A%24menu%5B4%5D%20%3D%20S%C3%A9parateur%0A%24menu%5B5%5D%20%3D%20Posts%0A%20%24submenu%5B’edit.php’%5D%5B5%5D%20%20%3D%20Posts%0A%20%24submenu%5B’edit.php’%5D%5B10%5D%20%20%3D%20Add%20New%0A%20%24submenu%5B’edit.php’%5D%5B%24i%2B%2B%5D%20%3D%20taxonomy%20(mots%20cl%C3%A9s%2C%20cat%C3%A9gories%2C%20…)%0A%24menu%5B10%5D%20%3D%20Media%0A%20%24submenu%5B’upload.php’%5D%5B5%5D%20%3D%20Library%0A%20%24submenu%5B’upload.php’%5D%5B10%5D%20%3D%20Add%20New%0A%24menu%5B15%5D%20%3D%20Links%0A%20%24submenu%5B’link-manager.php’%5D%5B5%5D%20%3D%20Links%0A%20%24submenu%5B’link-manager.php’%5D%5B10%5D%20%3D%20Add%20New%0A%20%24submenu%5B’link-manager.php’%5D%5B15%5D%20%3D%20Link%20Categories%0A%24menu%5B20%5D%20%3D%20Pages%0A%20%24submenu%5B’edit.php%3Fpost_type%3Dpage’%5D%5B5%5D%20%3D%20Pages%0A%20%24submenu%5B’edit.php%3Fpost_type%3Dpage’%5D%5B10%5D%20%3D%20Add%20New%0A%20%24submenu%5B’edit.php%3Fpost_type%3Dpage’%5D%5B%24i%2B%2B%5D%20%3D%20taxonomy%20(aucune%20par%20d%C3%A9faut))%0A%24menu%5B25%5D%20%3D%20Comments%0A%2F%2FVos%20taxonomies%0A%24menu%5B%24ptype_menu_position%5D%20%3D%20Nom%20de%20la%20taxonomie%0A%20%24submenu%5B%22edit.php%3Fpost_type%3D%24ptype%22%5D%5B5%5D%20%20%3D%20Nom%20de%20la%20taxonomie%0A%20%24submenu%5B%22edit.php%3Fpost_type%3D%24ptype%22%5D%5B10%5D%20%20%3D%20Add%20New%0A%20%24submenu%5B%22edit.php%3Fpost_type%3D%24ptype%22%5D%5B%24i%2B%2B%5D%20%3D%20taxonomy%0A%24menu%5B59%5D%20%3D%20S%C3%A9parateur%0A%24menu%5B60%5D%20%3D%20Appearance%0A%20%24submenu%5B’themes.php’%5D%5B5%5D%20%20%3D%20Themes%0A%20%24submenu%5B’themes.php’%5D%5B10%5D%20%3D%20Menus%0A%24menu%5B65%5D%20%3D%20Plugins%0A%20%24submenu%5B’plugins.php’%5D%5B5%5D%20%20%3D%20Plugins%0A%20%24submenu%5B’plugins.php’%5D%5B10%5D%20%3D%20Add%20New%0A%20%24submenu%5B’plugins.php’%5D%5B15%5D%20%3D%20Editor%0A%2F%2F%20si%20l’utilisateur%20a%20des%20droits%20d’administrateur%0A%24menu%5B70%5D%20%3D%20Users%0A%20%24submenu%5B’users.php’%5D%5B5%5D%20%3D%20Users%0A%20%24submenu%5B’users.php’%5D%5B10%5D%20%3D%20Add%20New%0A%20%24submenu%5B’users.php’%5D%5B15%5D%20%3D%20Your%20Profile%0A%2F%2F%20si%20l’utilisateur%20n’a%20pas%20les%20droits%20d’administrateur%0A%24menu%5B70%5D%20%3D%20Profile%0A%20%24submenu%5B’profile.php’%5D%5B5%5D%20%3D%20Your%20Profile%0A%20%24submenu%5B’profile.php’%5D%5B10%5D%20%3D%20Add%20New%20User%0A%24menu%5B75%5D%20%3D%20Tools%0A%20%24submenu%5B’tools.php’%5D%5B5%5D%20%3D%20Tools%0A%20%24submenu%5B’tools.php’%5D%5B10%5D%20%3D%20Import%0A%20%24submenu%5B’tools.php’%5D%5B15%5D%20%3D%20Export%0A%20%24submenu%5B’tools.php’%5D%5B25%5D%20%3D%20Delete%20Site%0A%20%24submenu%5B’tools.php’%5D%5B50%5D%20%3D%20Network%0A%24menu%5B80%5D%20%3D%20Settings%0A%20%24submenu%5B’options-general.php’%5D%5B10%5D%20%3D%20General%0A%20%24submenu%5B’options-general.php’%5D%5B15%5D%20%3D%20Writing%0A%20%24submenu%5B’options-general.php’%5D%5B20%5D%20%3D%20Reading%0A%20%24submenu%5B’options-general.php’%5D%5B25%5D%20%3D%20Discussion%0A%20%24submenu%5B’options-general.php’%5D%5B30%5D%20%3D%20Media%0A%20%24submenu%5B’options-general.php’%5D%5B35%5D%20%3D%20Privacy%0A%20%24submenu%5B’options-general.php’%5D%5B40%5D%20%3D%20Permalinks%0A%24menu%5B99%5D%20%3D%20S%C3%A9parateur »/]

Supprimer des blocs

Après les menus, voici comment supprimer des blocs de votre administration WordPress, notamment sur les pages de rédaction où cela peut vraiment devenir bordélique.

  • remove_meta_box (‘nom de la box’,’page où la box doit être enlevée‘,’normal (laisser tel quel’);

Un exemple pour enlever le bloc « Champs personnalisés« .

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »function%20remove_box()%20%7B%0A%20%20%20remove_meta_box(‘postcustom’%2C’post’%2C’normal’)%3B%0Aadd_action(‘admin_menu’%2C’remove_box’)%3B%0A%7D »/]

Pour trouver le nom de la box, il faut connaître son ID. Pour cela, il faut afficher le code source de la page et chercher le champ ID= » » du bloc. Quelques exemples:

  • #categorydiv pour le bloc « Catégorie« 
  • #commentstatusdiv pour le bloc « Discussion« 
  • #postexcerpt pour le bloc « Extrait« 

Sachez cependant que tous les blocs peuvent se désactiver via le menu « Options de l’écran« . L’avantage de ce code est pouvoir le faire automatiquement pour tous les utilisateurs actuels et à venir (et non pas juste pour vous).

On peut également désactiver certains éléments selon le niveau de l’utilisateur.

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »add_action(‘admin_init’%2C’customize_meta_boxes’)%3B%0Afunction%20customize_meta_boxes()%20%7B%0A%20global%20%24current_user%3B%0A%20get_currentuserinfo()%3B%0A%20if%20(%24current_user-%3Euser_level%20%3C%203)%0A%20remove_meta_box(‘postcustom’%2C’post’%2C’normal’)%3B%0A%7D »/]

Remplacez juste 3 par le niveau de l’utilisateur.

  • 10 = administrateur
  • 7 = éditeur
  • 4 = auteur
  • 1 = contributeur

Lisez d’ailleurs cet article pour savoir qui peut faire quoi sur WordPress : rôles et permissions

Articles et pages de l’administration

A partir de là, les hacks du fichier functions.php sont tous de moi (et on peut dire que j’ai bien galéré par moment).

Ajouter ou supprimer des colonnes

Colonnes de l'admin WP
Changez et ajoutez des colonnes à l

Certaines colonnes ne servent à rien. A l’inverse, on aimerait bien en avoir d’autres. Ce hack fonctionne en deux temps.

D’abord, on désactive ou on ajoute des colonnes.

  • unset($defaults[‘nom’]); pour désactiver une colonne
  • $defaults[‘id de ma colonne’] = ‘Nom de ma colonne’; pour ajouter une colonne

Dans mon exemple, je désactive les colonnes « Auteur » et « Mots clés » puisqu’elles ne me servent à rien, et je créer deux autres colonnes.

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »%20add_filter(‘manage_posts_columns’%2C%20’my_custom_columns’)%3B%0A%20function%20my_custom_columns(%24defaults)%20%7B%0A%20%20%20%20unset(%24defaults%5B’author’%5D)%3B%0A%20%20%20%20unset(%24defaults%5B’tags’%5D)%3B%0A%20%20%20%20%24defaults%5B’com’%5D%20%3D%20’Tweets’%3B%0A%20%20%20%20%24defaults%5B’image’%5D%20%3D%20’Image’%3B%0A%20%20%20%20return%20%24defaults%3B%7D »/]

Ensuite, la deuxième fonction indique quel contenu utiliser. Si je reprends mon exemple, je demande à WordPress

  • d’afficher la miniature de l’article (colonne Image)
  • de me montrer le nombre de tweets de mes articles (colonne Tweets, dont les chiffres proviennent d’un autre de mes hack)

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »add_action(‘manage_posts_custom_column’%2C%20%20’my_show_columns’)%3B%0A%20function%20my_show_columns(%24name)%20%7B%0A%20%20%20%20%20global%20%24post%3B%0A%20%20%20%20%20%24mypost%20%3D%20%24post-%3EID%3B%0A%20%20%20%20%20switch%20(%24name)%20%7B%0A%20%20%20%20%20%20%20%20%20case%20’image’%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%24images%20%3D%20the_post_thumbnail(‘thumbnail’%2C%20array(‘class’%20%3D%3E%20’article-thumb’))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20echo%20%24images%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20case%20’com’%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%24temp%20%3D%20get_post_meta(%24mypost%2C’ntweet’%2Ctrue)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(%20%24temp%20%3C%201)%20%24thecom%20%3D%20’0’%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%24thecom%20%3D%20get_post_meta(%24mypost%2C’ntweet’%2Ctrue)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20echo%20’%0A%0A%3Cdiv%3E’.%24thecom.’%3C%2Fdiv%3E%0A%0A’%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%7D%7D »/]

Pour l’image de l’article, il faut avoir activé les thumbnails dans votre thème (un bloc image à la une fera son apparition lors de la rédaction d’articles).

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »add_theme_support(‘post-thumbnails’)%3B »/]

Pour enlever d’éventuelles colonnes ajoutées par des plugins WordPress, il faudra fouiller un peu plus. Voici un exemple pour la colonne ajoutée par le plugin Robots Meta:

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »%20remove_filter(‘manage_page_posts_columns’%2C%20’robots_meta_column_heading’)%3B%0A%20remove_filter(‘manage_post_posts_columns’%2C%20’robots_meta_column_heading’)%3B%0A%20remove_action(‘manage_pages_custom_column’%2C%20’robots_meta_column_content’)%3B%0A%20remove_action(‘manage_posts_custom_column’%2C%20’robots_meta_column_content’)%3B »/]

Trier les colonnes dans WordPress

Le tri des colonnes de WordPress
Le tri des colonnes de WordPress

Maintenant, l’administration de votre blog est beaucoup plus pertinente. Mais il reste un défaut majeur : on ne peut pas trier les colonnes par ordre croissant ou décroissant. Commencez par télécharger ce fichier javascript, et placez-le dans le répertoire de votre thème.

PS : Pour une raison inconnue, mon fichier javascript doit contenir  jquery pour fonctionner, alors que celui-ci est déjà chargé par défaut par WordPress. Si quelqu’un a une solution, je suis preneur.

Le tri des colonnes est en deux parties. La première permet de charger le javascript par défaut, et de le personnaliser en fonction de la page où se trouve l’utilisateur. Chaque ligne stripos détecte donc la page de l’utilisateur, afin de lui ajouter le javascript (js_admin), ainsi que son code d’exécution propre (scriptjs_admin). Il y a deux raison à cela :

  • adapter le tri des colonnes (car le javascript se trompe parfois lorsqu’il auto-détecte le contenu d’une colonne)
  • ne pas charger mon fichier javascript là où cela n’est pas nécessaire

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »%20function%20js_admin()%20%7B%0A%20%20%20%20%20%24siteurl%20%3D%20get_bloginfo(‘template_url’)%3B%24url%20%3D%20%24siteurl%20.%20’%2Fjs-admin.js’%3B%0A%20%20%20%20%20echo%20%22%22%3B%7D%0A%20if%20(stripos(%24_SERVER%5B’REQUEST_URI’%5D%2C’%2Fedit.php%3Fpost_type%3Dpage’)%20!%3D%3D%20false)%20%7Badd_action(‘admin_head’%2C%20’js_admin’)%3Badd_action(‘admin_head’%2C%20’scriptjs_adminart2′)%3B%7D%0A%20elseif%20(stripos(%24_SERVER%5B’REQUEST_URI’%5D%2C’%2Fedit.php’)%20!%3D%3D%20false)%20%7Badd_action(‘admin_head’%2C%20’js_admin’)%3Badd_action(‘admin_head’%2C%20’scriptjs_adminart’)%3B%7D%0A%20elseif%20(stripos(%24_SERVER%5B’REQUEST_URI’%5D%2C’%2Fusers.php’)%20!%3D%3D%20false)%20%7Badd_action(‘admin_head’%2C%20’js_admin’)%3Badd_action(‘admin_head’%2C%20’scriptjs_admin’)%3B%7D%0A%20elseif%20(stripos(%24_SERVER%5B’REQUEST_URI’%5D%2C’%2Fedit-comments.php’)%20!%3D%3D%20false)%20%7Badd_action(‘admin_head’%2C%20’js_admin’)%3Badd_action(‘admin_head’%2C%20’scriptjs_adminart3′)%3B%7D%0A%20elseif%20(stripos(%24_SERVER%5B’REQUEST_URI’%5D%2C’%2Fupload.php’)%20!%3D%3D%20false)%20%7Badd_action(‘admin_head’%2C%20’js_admin’)%3Badd_action(‘admin_head’%2C%20’scriptjs_adminart4′)%3B%7D%0A%20elseif%20(stripos(%24_SERVER%5B’REQUEST_URI’%5D%2C’%2Flink-manager.php’)%20!%3D%3D%20false)%20%7Badd_action(‘admin_head’%2C%20’js_admin’)%3Badd_action(‘admin_head’%2C%20’scriptjs_admin’)%3B%7D%0A%20elseif%20(stripos(%24_SERVER%5B’REQUEST_URI’%5D%2C’%2Fedit-link-categories.php’)%20!%3D%3D%20false)%20%7Badd_action(‘admin_head’%2C%20’js_admin’)%3Badd_action(‘admin_head’%2C%20’scriptjs_admin’)%3B%7D%0A%20elseif%20(stripos(%24_SERVER%5B’REQUEST_URI’%5D%2C’%2Fedit-tags.php’)%20!%3D%3D%20false)%20%7Badd_action(‘admin_head’%2C%20’js_admin’)%3Badd_action(‘admin_head’%2C%20’scriptjs_admin’)%3B%7D »/]

La seconde partie ci-dessous permet d’exécuter le script. Attention à ne pas copier/coller bêtement ce code. Il y a plusieurs fonctions:

  • scriptjs_admin : le code par défaut
  • scriptjs_adminart : pour les articles
  • scriptjs_adminart2 : pour les pages
  • scriptjs_adminart3 : pour les commentaires
  • scriptjs_adminart4 : pour les médias

Comme vous pourrez le voir, ces fonctions contiennent parfois un champ « headers« . Il s’agit en fait d’indiquer au javascript comment comprendre le contenu d’une colonne, car la détection par défaut ne fonctionne pas tout le temps.

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »%7B3%3A%20%7Bsorter%3A’date’%7D »/]

  • 3 correspond à la troisième colonne
  • sorter:date indique qu’il faut trier cette colonne comme un champ Date. On utilisera aussi sorter:digit pour les chiffres ou encore sorter:url pour l’adresse.

Si vous avez désactivé ou ajouté des colonnes, ou si un plugin l’a fait, il est possible que le numéro de votre colonne soit différent. Par exemple, la colonne 4 et 5 des deux correspond chez moi au tri du plugin Google Analytics Dashboard. Il faudra donc tester.

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »function%20scriptjs_admin%20()%7B%0A%20%20%20%20%20echo%20%22%24(document).ready(function()%0A%20%7B%20%24(‘.widefat’).tablesorter()%3B%20%7D%20)%3B%20%22%3B%7D%0A%20function%20scriptjs_adminart%20()%7B%0A%20%20%20%20%20echo%20%22%24(document).ready(function()%20%7B%0A%20%24.tablesorter.addParser(%7B%20id%3A%20’date’%2C%20is%3A%20function(s)%20%7Breturn%20false%3B%20%7D%2C%20format%3A%20function(s)%20%7B%20date%20%3D%20s.split(%2F%5C%2F%2F)%3B%20return%20date%5B1%5D%20%2B%20date%5B0%5D%3B%20%7D%2C%20type%3A%20’numeric’%20%7D)%3B%0A%20%24(function()%20%7B%20%24(‘.widefat’).tablesorter(%7B%20headers%3A%20%7B%203%3A%20%7Bsorter%3A’date’%7D%2C4%3A%20%7Bsorter%3A’digit’%7D%7D%20%7D)%3B%20%7D)%3B%7D)%3B%22%3B%7D%0A%20function%20scriptjs_adminart2%20()%7B%0A%20%20%20%20%20echo%20%22%24(document).ready(function()%20%7B%0A%20%24.tablesorter.addParser(%7B%20id%3A%20’date’%2C%20is%3A%20function(s)%20%7Breturn%20false%3B%20%7D%2C%20format%3A%20function(s)%20%7B%20date%20%3D%20s.split(%2F%5C%2F%2F)%3B%20return%20date%5B1%5D%20%2B%20date%5B0%5D%3B%20%7D%2C%20type%3A%20’numeric’%20%7D)%3B%0A%20%24(function()%20%7B%20%24(‘.widefat’).tablesorter(%7B%20headers%3A%20%7B%204%3A%20%7Bsorter%3A’date’%7D%2C5%3A%20%7Bsorter%3A’digit’%7D%7D%20%7D)%3B%20%7D)%3B%7D)%3B%22%3B%7D%0A%20function%20scriptjs_adminart3%20()%7B%0A%20%20%20%20%20echo%20%22%24(document).ready(function()%20%7B%0A%20%24.tablesorter.addParser(%7B%20id%3A%20’date’%2C%20is%3A%20function(s)%20%7Breturn%20false%3B%20%7D%2C%20format%3A%20function(s)%20%7B%20date%20%3D%20s.split(%2F%5C%2F%2F)%3B%20return%20date%5B1%5D%20%2B%20date%5B0%5D%3B%20%7D%2C%20type%3A%20’numeric’%20%7D)%3B%0A%20%24(function()%20%7B%20%24(‘.widefat’).tablesorter(%7B%20headers%3A%20%7B%202%3A%20%7Bsorter%3A’date’%7D%7D%20%7D)%3B%20%7D)%3B%7D)%3B%22%3B%7D%0A%20function%20scriptjs_adminart4%20()%7B%0A%20%20%20%20%20echo%20%22%24(document).ready(function()%20%7B%0A%20%24.tablesorter.addParser(%7B%20id%3A%20’date’%2C%20is%3A%20function(s)%20%7Breturn%20false%3B%20%7D%2C%20format%3A%20function(s)%20%7B%20date%20%3D%20s.split(%2F%5C%2F%2F)%3B%20return%20date%5B1%5D%20%2B%20date%5B0%5D%3B%20%7D%2C%20type%3A%20’numeric’%20%7D)%3B%0A%20%24(function()%20%7B%20%24(‘.widefat’).tablesorter(%7B%20headers%3A%20%7B%206%3A%20%7Bsorter%3A’date’%7D%2C4%3A%20%7Bsorter%3A’url’%7D%7D%20%7D)%3B%20%7D)%3B%7D)%3B%22%3B%7D »/]

Voilà, le tri a été ajouté aux colonnes de l’administration WordPress. Il faut cependant savoir que

  • J’ai omis la page des plugins, car la manière dont est conçu le tableau ne permet pas le tri.
  • Cette méthode utilise le plugin TableSorter de Jquery.
  • Il est imprécis sur les accents. Si la première lettre de votre article est accentuée, le tri par ordre alphabétique sera faux.

Mise en page de l’administration WordPress

WordPress est fourni avec un thème par défaut. Mais par moment, je trouve que la mise en page manque de clarté. Avec un simple hack, on peut donc ajouter sa propre feuille de style pour personnaliser l’affichage. L’article ne vise pas à créer un nouveau thème pour l’administration de WordPress, mais juste à le rendre plus clair.

Commencez par copier/coller ce code dans le fichier functions.php de votre thème :

[pastacode lang= »php » message= » » highlight= » » provider= »manual » manual= »%2F%2FCSS%20Admin%0Afunction%20css_admin()%20%7B%0A%20%24siteurl%20%3D%20get_bloginfo(‘template_url’)%3B%24url%20%3D%20%24siteurl%20.%20’%2Fstyle-admin.css’%3B%0A%20echo%20%22%09%09%5Cn%22%3B%7D%0Aadd_action(‘admin_head’%2C%20’css_admin’)%3B »/]

Il vous suffit de créer ensuite un fichier style-admin.css dans le répertoire de votre thème WordPress, ce qui peut donner par exemple :

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= »%23wpbody%7Bmargin-left%3A220px%7D%0A%23adminmenu%7Bwidth%3A190px%3Bmargin-left%3A-205px%7D%0A.inner-sidebar%20%23side-sortables%7Bwidth%3A330px%7D%0A.inner-sidebar%7Bwidth%3A331px%7D%0A.has-right-sidebar%20%23post-body-content%7Bmargin-right%3A350px%7D%0A%23adminmenu%20.wp-submenu%20a%7Bfont-size%3A13px%3Bline-height%3A20px%7D%0A%23adminmenu%20a.menu-top%7Bfont-size%3A15px%3Bline-height%3A20px%7D%0Atable.widefat%20thead%20tr%20.header%2Ctable.widefat%20thead%20tr%20th%7Bfont-size%3A1.2em%7D%0A.postbox%20.hndle%20span%7Bfont-size%3A1.3em%7D%0A%23adminmenu%20a.menu-icon-comments%2C%23adminmenu%20a.menu-icon-post%7Bfont-weight%3Abold%7D%0A%23adminmenu%20a.menu-top-last%7Bfont-weight%3Anormal%7D%0A%23the-comment-list%20.unapproved%20%7Bbackground-color%3A%23f4f4bf%7D%0A.widget%2C.postbox%2C.stuffbox%20%7Bmargin-bottom%3A30px%7D%0A.postbox-container%7Bpadding-right%3A0.6%25%7D%0A.postbox%7Bwidth%3A95.5%25%7D%0A.widefat%20td%2C.widefat%20th%2C%23install-plugins%20.plugins%20td%2C%23install-plugins%20.plugins%20th%2C.widget%2C%23widget-list%20.widget-top%2C%0A.postbox%2C%23titlediv%2C%23poststuff%20.postarea%2C.stuffbox%7Bborder-color%3A%23cfc7c7%7D%0A.status-draft%7Bbackground-color%3A%23fff%7D%0A.status-publish%7Bbackground-color%3A%23d7ffda%7D%0A.status-future%7Bbackground-color%3A%23f8f9cd%7D%0A.status-trash%7Bbackground-color%3A%23ffcbcb%7D »/]

Maintenant, voici l’explication de ce fichier css.

Elargir le menu de gauche et la colonne de droite

Sur les grands écrans, le menu de gauche semble parfois un peu petit. Et cela évite les retours à la ligne pour les noms de plugin trop longs

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= ».inner-sidebar%20%23side-sortables%7Bwidth%3A330px%7D%0A.inner-sidebar%7Bwidth%3A331px%7D%0A.has-right-sidebar%20%23post-body-content%7Bmargin-right%3A350px%7D%0A%23adminmenu%20.wp-submenu%20a%7Bfont-size%3A13px%3Bline-height%3A20px%7D%0A%23adminmenu%20a.menu-top%7Bfont-size%3A15px%3Bline-height%3A20px%7D »/]

Agrandir les titres

La taille des titres WordPress
La taille des titres, ca compte

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= »table.widefat%20thead%20tr%20.header%2Ctable.widefat%20thead%20tr%20th%7Bfont-size%3A1.2em%7D%0A.postbox%20.hndle%20span%7Bfont-size%3A1.3em%7D »/]

Mettre en avant les articles et commentaires

Sur beaucoup de blogs WordPress, c’est les articles et commentaires qui sont le plus utilisés. Quoi de plus naturel donc que de les mettre en gras ?

Mettez en avant le menu d'administration de WordPress
Mettez en avant le menu admin

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= »%23adminmenu%20a.menu-icon-comments%2C%23adminmenu%20a.menu-icon-post%7Bfont-weight%3Abold%7D%0A%23adminmenu%20a.menu-top-last%7Bfont-weight%3Anormal%7D »/]

PS : la seconde ligne est utilisée pour les plugins qui ajoutent un menu sous « Commentaires« , et qui réutilisent (à tord) l’icône du menu « Articles« .

Mettre en avant les commentaires en attente de modération

Pour ceux qui ne le savent pas, je suis Daltonien, ce qui rend la couleur par défaut pour les commentaires en attente de validation insuffisante. Ce petit bout de code accentue donc cette couleur pour une meilleure visibilité.

Les commentaires en attente sous WordPress
Les commentaires en attente sous WordPress

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= »%23the-comment-list%20.unapproved%20%7Bbackground-color%3A%23f4f4bf%7D »/]

Espacer les blocs

Sur un grand écran, les espaces et les contours des blocs ne sont pas parfaits, et pourraient être plus lisible. Le premier code augmente l’espace entre chaque bloc, pour aérer l’administration de WordPress.

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= ».widget%2C.postbox%2C.stuffbox%20%7Bmargin-bottom%3A30px%7D%0A.postbox-container%7Bpadding-right%3A0.6%25%7D%0A.postbox%7Bwidth%3A95.5%25%7D »/]

Le deuxième code permet d’accentuer légèrement la couleur des bordures :

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= ».widefat%20td%2C.widefat%20th%2C%23install-plugins%20.plugins%20td%2C%23install-plugins%20.plugins%20th%2C.widget%2C%23widget-list%20.widget-top%2C%0A.postbox%2C%23titlediv%2C%23poststuff%20.postarea%2C.stuffbox%7Bborder-color%3A%23cfc7c7%7D »/]

Les listes d’articles et de pages WP

Les listes d’articles dans WordPress manquent cruellement de logique. La seule différence pour connaître le statut de l’article vient de la mention « Brouillon » située après le titre, ou via la colonne date pour le statut « publié« …

Un peu de couleur permet de comprendre au premier coup d’œil : rouge pour les articles en corbeille, vert pour les articles publiés, blanc pour les brouillons et jaune pour les articles qui se publieront automatiquement.

Faite ressortir le status de vos articles
Faite ressortir le statut de vos articles

[pastacode lang= »css » message= » » highlight= » » provider= »manual » manual= ».status-draft%7Bbackground-color%3A%23fff%7D%0A.status-publish%7Bbackground-color%3A%23d7ffda%7D%0A.status-future%7Bbackground-color%3A%23f8f9cd%7D%0A.status-trash%7Bbackground-color%3A%23ffcbcb%7D »/]

Sources

Avec tout ça, l’administration de votre blog WordPress devrait être un peu plus fonctionnel.

Comme d’habitude, vos insultes, commentaires ou idées sont les bienvenues. Au passage, une petite question qui n’a rien à voir : vous préférez un gros article comme celui-ci, ou une série d’article sur chaque point ?

Daniel Roch

Conférencier, auteur, consultant et expert SEO WordPress, CEO de SeoMix et SEOKEY

61 Commentaires

Webastuces Le 14 octobre 2010 à 10h18
Gregot Le 14 octobre 2010 à 12h31
Anthony Le 14 octobre 2010 à 13h27
Arbaoui Mehdi Le 14 octobre 2010 à 18h15
Daniel Roch Le 14 octobre 2010 à 18h37
Akiletour Le 15 octobre 2010 à 0h19
TeChn4K Le 15 octobre 2010 à 1h46
Sylvain Le 15 octobre 2010 à 17h40
Le Juge SEO Le 16 octobre 2010 à 0h13
Bastien Donjon Le 17 octobre 2010 à 13h54
Daniel Roch Le 17 octobre 2010 à 16h41
Nicolas Le 18 octobre 2010 à 17h30
Insolite-du-Geek Le 19 octobre 2010 à 15h05
Julien Le 24 octobre 2010 à 0h08
Daniel Roch Le 24 octobre 2010 à 12h39
stephane Le 27 octobre 2010 à 23h52
Daniel Roch Le 28 octobre 2010 à 13h44
Anthony Le 03 novembre 2010 à 16h29
Daniel Roch Le 04 novembre 2010 à 10h36
Anthony Le 04 novembre 2010 à 12h43
Fnor Le 06 novembre 2010 à 21h17
Hype Hope Le 29 janvier 2011 à 8h44
Eloka Le 15 mars 2011 à 18h09
erix Le 17 mars 2011 à 6h28
Easy Entreprise Le 09 avril 2011 à 11h55
Herve Le 13 avril 2011 à 12h47
Daniel Roch Le 14 avril 2011 à 9h20
Hervé Le 18 avril 2011 à 10h23
Hervé Le 25 avril 2011 à 16h27
Daniel Roch Le 26 avril 2011 à 12h09
Hervé Le 26 avril 2011 à 18h04
Gustavo Le 30 avril 2011 à 12h49
Daniel Roch Le 01 mai 2011 à 13h13
Gustavo Le 02 mai 2011 à 11h18
Marco Le 26 mai 2011 à 13h02
Daniel Roch Le 26 mai 2011 à 18h29
SamSoul Le 20 juin 2011 à 17h01
Daniel Roch Le 23 juin 2011 à 12h29
frelon13 Le 24 juin 2011 à 18h01
Gilles Le 29 juin 2011 à 0h29
SaM@24 Le 11 août 2011 à 10h04
Daniel Roch Le 24 août 2011 à 11h27
Chris Le 13 septembre 2011 à 11h20
Daniel Roch Le 14 septembre 2011 à 12h01
chris Le 14 septembre 2011 à 12h45
Gwen Le 13 octobre 2011 à 18h46
Daniel Roch Le 14 octobre 2011 à 7h57
Rodolphe_ Le 21 octobre 2011 à 19h12
julien Le 14 décembre 2011 à 17h25
Daniel Roch Le 15 décembre 2011 à 10h34
Marie Pelletier Le 20 décembre 2011 à 15h37
Daniel Roch Le 21 décembre 2011 à 7h52
Gilles Le 12 janvier 2012 à 16h39
nadsoft Le 24 janvier 2012 à 2h33
Daniel Roch Le 24 janvier 2012 à 14h44
Djolhan Le 27 avril 2012 à 13h48
Daniel Roch Le 27 avril 2012 à 14h16
Lionel Pointet Le 27 avril 2012 à 15h52
Djolhan Le 27 avril 2012 à 20h19
Luz Le 07 mars 2016 à 13h37
Roullier Le 08 février 2019 à 15h52

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *