Contenu principal
wordpress-retrouver-actions-favorites

Retrouver les actions favorites dans l’administration de WordPress 3.2

La version 3.2 de WordPress est sortie la nuit dernière, amenant son « petit » lot d’améliorations et de changements. L’un d’eux est la suppression du menu des actions favorites en haut de l’administration. Ayant vu passer quelques tweets tristes concernant cette disparition, voici comment le faire revenir.

Pour l’histoire, j’ai vu quelque part (j’arrive pas à remettre la main dessus) que WordPress préconise l’utilisation de la barre d’administration afin de remplacer le menu des actions favorites. Je trouve que c’est tout à fait pertinent, car dans les précédentes versions, les utilisateurs de la barre d’administration se retrouvaient avec ce menu qui ne servait plus à rien car en doublon. Et puis si on veut avancer, il faut parfois couper la ficelle de certaines casseroles qu’on se traine inutilement. Sauf que certains aimeraient avoir le choix (d’un autre côté, on a le choix : utiliser la barre d’administration ou se passer des actions favorites).

Faire revenir les actions favorites

La bonne nouvelle c’est que même si ce menu a disparu du header de l’administration, son code est toujours présent dans WordPress (pour combien de temps?). Il suffira d’invoquer la fonction favorite_actions() dans le header pour le revoir apparaitre. Tant que nous y sommes, nous pourrions faire en sorte que ce menu n’apparaissent que si la barre d’administration n’est pas affichée, histoire de contenter tout le monde.
Comme d’habitude, ces lignes sont à mettre dans le fichier functions.php de votre thème.

1234567

function sf_admin_header() {
	global $current_user, $current_screen;
	if ($current_user->show_admin_bar_admin == 'false' && function_exists('favorite_actions')) {
		favorite_actions($current_screen);
	}
}
add_action('in_admin_header', 'sf_admin_header');

Ici, la variable globale $current_user permet de savoir si l’utilisateur courant souhaite afficher la barre d’administration. S’il ne le souhaite pas, on affiche le menu des actions favorites. La variable globale $current_screen permet de savoir sur quelle page de l’administration nous nous situons, et ainsi, de modifier le contenu du menu en fonction.

Placement du menu et suppression des doublons

Nous avons tout de même un tout petit problème : là où se fait l’action « in_admin_header », ce n’est pas là où était placé le menu à l’époque, et il met le bazar dans le header de l’administration. Il faut donc rajouter un peu de CSS dans le head de l’administration pour le replacer à un endroit convenable, sans déranger le reste. Pour ma part, j’ai trouvé pratique de le placer en absolu au milieu du header, à vous d’adapter le code si cela ne vous convient pas.
Deuxième chose : si au contraire je souhaite utiliser la barre d’administration, il y a un truc qui me gène énormément : le header devient alors inutile puisqu’il ne fait qu’ajouter des liens déjà présents dans la barre d’administration. En effet, dans le header on peut trouver :

  • Un lien vers l’accueil de son site : présent dans l’admin bar,
  • Le bloc de salutations à droite permettant de modifier son profil et de se déconnecter : présent dans l’admin bar.

Et bien masquons ce header inutile si l’admin bar est affichée!

123456

function sf_admin_head() {
	echo '<style type="text/css">#wphead {position: relative;}'
		.'body.admin-bar #wphead {height: 0; overflow: hidden}'
		.'#favorite-actions {position: absolute; margin: 6px 0 0 -65px; left: 50%;}</style>';
}
add_action('admin_head', 'sf_admin_head');

Afin de pouvoir positionner en absolu le menu, nous avons dû positionner en relatif le header (1ère ligne du CSS).
A la deuxième ligne, la classe « body.admin-bar » permet de cibler le header seulement quand l’admin bar est affichée. Si on utilise la propriété display: none; pour masquer le header, notre page va passer sous l’admin bar (à cause d’un padding), donc à la place on fixe sa hauteur à zéro et on déclare overflow à hidden pour faire disparaitre tout son contenu.
A la dernière ligne nous positionnons notre menu.

Conclusion

Le menu des actions favorites est de retour pour ceux qui le souhaitent, et n’est pas invoqué pour ceux qui préfèrent la barre d’administration. De plus, nous faisons disparaitre le header, qui fait doublon avec la barre d’administration.

See ya!