Contenu principal

Admin Bar Tools

SF Admin Bar Tools est un outil de développement pour WordPress, il regroupe plusieurs petites fonctionnalités souvent utiles. Cet outil se présente sous la forme d’un onglet dans la barre d’outils.

L’onglet affiche le nombre de requêtes sur la page ainsi que le temps de génération de la page.
D’autres infos sont disponibles : mémoire php consommée et max, version php, état du debug, le niveau de rapport d’erreur.

Côté administration on trouve une liste des principaux hooks (actions) utiles sur la page et le nombre de fois où ils ont été utilisés. Sont aussi affichés les éventuels paramètres passés à ces hooks, il faut survoler le « P » dans le rond pour voir sa valeur. On a aussi droit aux variables $pagenow et $typenow.

SF Adminbar Tools : les filtres côté administration

SF Adminbar Tools : sélection d'un filtre côté administration

Côté front-end, un clic sur l’élément $wp_query ouvre une lightbox affichant la valeur de la variable globale $wp_query.

SF Adminbar Tools : $wp_query

Un peu plus bas, une liste affiche les templates et template parts de la page. De plus, l’extension saura dire si les templates viennent du thème parent, du thème enfant, ou d’une extension. Ha oui, les templates de WooCommerce sont supportés.

SF Adminbar Tools : template parts

SF Adminbar Tools : WooCommerce template parts

Quelques réglages sont disponibles. Le principal est la liste des joueurs sur la scène (comprendre : la liste des utilisateurs autorisés à utiliser l’extension ;) ). Ainsi, si vous êtes sur le site d’un client, il ne verra pas l’outil. Il y a également quelques autres réglages que je vous laisse découvrir.

SF Adminbar Tools : réglages

Il y a dans l’extension une petite fonction qui m’est très utile : pre_print_r(). Le nom laisse présager son utilité, il s’agit d’un print_r() dans une balise <pre/>. La fonction vient avec 2 paramètres supplémentaires conditionnant sa visibilité.

/*
 * A better <code>print_r()</code>, wrapped in a styled <code><pre></code> tag.
 *
 * $var                     (mixed)    Variable to print out.
 * $display                 (bool|int) When false (default), print a "display: none" in the <code><pre></code> style. This way, you'll have to manually remove it (with firebug or any other tool), so you don't bother other users. But be aware that you can still break things.
 * $print_for_non_logged_in (bool|int) When false (default), nothing will be printed for logged out users.
 * ex:
 * pre_print_r($var)      : printed only for logged in users, but hidden for everybody (remove the display:hidden by yourself in the page).
 * pre_print_r($var, 1)   : printed only for logged in users, all logged in users can see the code.
 * pre_print_r($var, 0, 1): printed for everybody (logged out users too), but hidden for everybody (remove the display:hidden by yourself in the page).
 * pre_print_r($var, 1, 1): printed for everybody (logged out users too), all users can see the code.
 */

En gros j’utilise pre_print_r($var, 1) tout le temps, et parfois pre_print_r($var, 1, 1) lorsque je suis déconnecté (à éviter sur le site du client hein ;) ).
Par contre il ne faut pas oublier qu’on peut casser l’affichage du site, même si notre <pre/> est en display none.
Exemples à ne PAS suivre :

<div class="<?php echo implode( ',', $class ); pre_print_r($class,1); ?>">
<head>
...
<?php pre_print_r($foobar,1); ?>

Hooks

‘sfabt-lightbox-vars’ (filtre)

Permet d’utiliser la lightbox « $wp_query » en front-end pour d’autres variables. Le filtre attend un tableau contenant toutes les variables que l’on souhaite visualiser (on peut donc en lister plusieurs).

add_filter( 'sfabt-lightbox-vars', 'my_vars_for_lightbox' );

function my_vars_for_lightbox( $vars ) {
	$vars[] = 'wp_actions';
	return $vars;
}

‘sfabt-lightbox-var-content’ (filtre)

Lié au précédent filtre, permet de modifier le contenu affiché dans la lightbox pour une variable donnée (sauf $wp_query). Utile si l’on souhaite afficher autre chose qu’une globale.

add_filter( 'sfabt-lightbox-vars', 'my_vars_for_lightbox' );

function my_vars_for_lightbox( $vars ) {
	$vars[] = 'my_var';
	return $vars;
}


add_filter( 'sfabt-lightbox-var-content', 'my_var_content_for_lightbox', 10, 2 );

function my_var_content_for_lightbox( $content, $var ) {
	if ( $var === 'my_var' ) {
		$content = get_my_var();
	}
	return $content;
}

‘sfabt_add_nodes_before’ (action)

Déclenchée juste avant la création des items de l’adminbar.

‘sfabt_add_nodes_inside’ (action)

Déclenchée juste après la création de l’item principal de l’adminbar. Utile pour ajouter des items avant l’item « mémoire php ».

‘sfabt_add_nodes_after’ (action)

Déclenchée après la création de tous les items de l’adminbar. Utile pour ajouter des items après tous les autres, ou pour modifier ceux déjà créés.

Et les autres…

Il y a quelques autres filtres et actions, notamment tout ce qui concerne les réglages de l’extension, mais je vous laisse consulter le code pour cela.