Lorsqu’on s’initie au développement de plugins WordPress, on croise très vite un concept central : les « hooks ». Ces mécanismes, discrets mais essentiels, permettent d’ajouter des fonctionnalités ou de modifier le comportement de WordPress sans jamais toucher à son cœur. Pour bien en saisir le fonctionnement, rien ne vaut un exemple concret et accessible et c’est justement ce que propose le plugin Hello Dolly. Présent par défaut dans chaque nouvelle installation de WordPress, ce petit plugin au nom chantant passe souvent inaperçu. Pourtant, derrière ses lignes de code sobres se cache un véritable outil pédagogique. En étudiant son fonctionnement, on découvre comment utiliser les hooks add_action et admin_notices, deux piliers de l’architecture modulaire de WordPress. Un point d’entrée idéal pour comprendre l’ossature de ce CMS emblématique.
Ce que sont les hooks : Actions et filtres dans WordPress
Au cœur de l’architecture de WordPress se trouve un système d’extension particulièrement puissant : Les hooks, ou crochets en français. Ces points d’ancrage permettent aux développeurs d’interagir avec le noyau de WordPress sans avoir à modifier directement ses fichiers. Ils sont utilisés aussi bien dans les plugins que dans les thèmes, et constituent l’un des piliers de la modularité du CMS. Les hooks interviennent à différents moments du cycle de vie d’une requête WordPress, qu’il s’agisse du chargement du tableau de bord, de la génération d’une page, de l’enregistrement d’un article, ou même du rendu HTML final. WordPress en expose plusieurs centaines, répartis en deux grandes familles :
- Les actions : Elles permettent d’exécuter du code à un instant précis. Une action est un déclencheur auquel on peut attacher une ou plusieurs fonctions personnalisées. Ces fonctions s’exécutent lorsque l’action est appelée dans le core. Les actions sont parfaites pour ajouter du contenu, créer des fichiers, envoyer des emails, ou interagir avec l’administration. Par exemple :
admin_init,save_post, ouwp_footer; - Les filtres : Ils permettent de modifier des données avant leur utilisation ou leur affichage. Contrairement aux actions qui « font » quelque chose, les filtres sont conçus pour « transformer » quelque chose. Ils prennent une valeur en entrée, la modifient, puis la retournent. Par exemple, un filtre peut servir à modifier le titre d’un article, les balises meta d’une page, ou le contenu affiché par un widget. Exemples :
the_content,excerpt_length,wp_title.
Le mécanisme repose sur deux fonctions principales :
add_action( $hook, $function ): pour attacher une fonction personnalisée à un hook d’action.add_filter( $hook, $function ): pour attacher une fonction à un hook de filtre, qui modifiera une valeur.
De la même manière, il est possible de retirer des fonctions déjà attachées à un hook à l’aide de remove_action() et remove_filter(). Cette souplesse permet une personnalisation poussée de WordPress, et constitue un socle fondamental dans le développement d’extensions professionnelles. Le plugin Hello Dolly illustre de manière simple et efficace le fonctionnement d’un hook d’action. Il utilise add_action() pour lier une fonction personnalisée (hello_dolly()) au hook admin_notices. Ce dernier est exécuté lors de l’affichage des notifications dans l’administration WordPress, juste après le chargement de l’en-tête et avant le contenu principal du tableau de bord. Concrètement, à chaque rechargement d’une page dans l’administration, WordPress déclenche le hook admin_notices, et la fonction hello_dolly() s’exécute à ce moment précis. Elle affiche alors une ligne de texte tirée des paroles de la chanson « Hello, Dolly! » sous forme d’un paragraphe HTML intégré dans la zone de notifications.
Ce comportement démontre parfaitement comment une action peut être utilisée pour enrichir l’interface d’administration sans altérer le fonctionnement natif de WordPress. Il illustre également la capacité des hooks à intervenir dans des zones précises du CMS, rendant possible la création de comportements dynamiques, contextuels et facilement maintenables.

Le code de Hello Dolly : Une application simple de add_action
Le plugin Hello Dolly repose sur une structure volontairement épurée, pensée pour servir d’exemple de base à tout développeur WordPress en herbe. Son fonctionnement s’appuie essentiellement sur deux fonctions PHP et un seul hook d’action. Cette simplicité apparente est en réalité une démonstration efficace des fondements du système de hooks de WordPress.
Voici un extrait du fichier hello.php, contenu dans le dossier /wp-content/plugins/hello-dolly/ :
<?php
function hello_dolly_get_lyric() {
$lyrics = "Hello, Dolly
Well, hello, Dolly
It's so nice to have you back where you belong
You're looking swell, Dolly
I can tell, Dolly
You're still glowin', you're still crowin', you're still goin' strong";
$lyrics = explode( "\n", $lyrics );
return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] );
}
function hello_dolly() {
$chosen = hello_dolly_get_lyric();
echo "<p id='dolly'>$chosen</p>";
}
add_action( 'admin_notices', 'hello_dolly' );
?>
Ce code peut sembler anodin à première vue, mais il renferme tous les éléments clés pour comprendre comment injecter dynamiquement du contenu dans l’interface d’administration de WordPress via les hooks :
hello_dolly_get_lyric(): Cette fonction contient une chaîne de caractères multiline (ici, des extraits de la chanson « Hello, Dolly! ») qui est ensuite transformée en tableau à l’aide deexplode("\n", $lyrics). Grâce àmt_rand(), une ligne est sélectionnée aléatoirement à chaque exécution. Le texte est ensuite passé dans la fonctionwptexturize(), qui améliore la typographie (par exemple, en transformant les apostrophes droites en apostrophes typographiques courbes) ;hello_dolly(): C’est la fonction principale du plugin. Elle appellehello_dolly_get_lyric(), récupère la citation générée, puis l’affiche dans un paragraphe HTML en l’encapsulant dans un élément<p>avec l’attributid="dolly". Cela permet, si nécessaire, de cibler cet élément via une feuille de style CSS pour le personnaliser (couleur, position, taille de police, etc.) ;add_action( 'admin_notices', 'hello_dolly' ): voici le cœur du mécanisme. Cette ligne utilise la fonction nativeadd_action()pour inscrire la fonctionhello_dolly()sur le hookadmin_notices. Ce hook est exécuté à chaque affichage d’une page d’administration WordPress, juste après le chargement de l’en-tête, et juste avant le contenu principal. C’est un emplacement stratégique pour afficher des notifications ou des messages contextuels à l’utilisateur administrateur.
Autrement dit, à chaque fois que l’on accède à une page dans le back-office (que ce soit le tableau de bord, la page d’articles, les réglages ou une autre section), WordPress parcourt la liste des fonctions enregistrées sur admin_notices et les exécute. Dans ce cas, la fonction hello_dolly() est déclenchée, ce qui a pour effet d’afficher une citation aléatoire dans le HTML généré. Le résultat dans le code source de la page d’administration ressemblera à ceci :
<p id="dolly">You're looking swell, Dolly</p>
Il est important de noter que ce type d’affichage se produit uniquement dans l’interface admin, et qu’il n’impacte jamais le site public (le front-end). Ce comportement est typique des hooks liés à l’administration, comme admin_init, admin_menu ou encore admin_enqueue_scripts. Ce qui rend ce code particulièrement formateur, c’est qu’il synthétise plusieurs notions fondamentales du développement WordPress :
- Manipulation de chaînes de caractères et de tableaux en PHP ;
- Utilisation d’une fonction aléatoire sécurisée (
mt_rand()) pour obtenir un comportement non déterministe ; - Amélioration typographique via une fonction native de WordPress (
wptexturize()) ; - Injection dynamique de contenu dans le DOM HTML généré par l’administration via un hook d’action.
Cette mécanique peut ensuite être étendue ou adaptée à d’autres besoins : Afficher des rappels personnalisés, proposer une citation motivante, signaler une tâche de maintenance, ou même alerter l’administrateur sur l’état de certains paramètres du site. En ce sens, Hello Dolly ne se contente pas d’être un clin d’œil historique, c’est un véritable outil de démonstration des fondements du système de hooks dans WordPress.

Focus sur admin_notices : Où et comment agit ce hook ?
Parmi les nombreux hooks d’action disponibles dans WordPress, admin_notices est l’un des plus accessibles et les plus fréquemment utilisés. Il sert à injecter du contenu HTML directement dans l’interface d’administration, généralement juste en dessous du titre de page (<h1>) et avant le contenu principal. C’est un emplacement idéal pour afficher des messages à l’attention des administrateurs : Notifications système, avertissements, confirmations d’action, rappels de sécurité ou encore mises à jour importantes. Techniquement, le hook admin_notices est exécuté lors du rendu des pages de l’admin WordPress, dans le fichier wp-admin/admin-header.php. Il est déclenché après la fin du bloc <div id="wpbody"> et avant le contenu de la page, ce qui garantit une excellente visibilité à tout contenu injecté via ce hook. C’est ce qui explique pourquoi les messages affichés par de nombreux plugins (comme WooCommerce, Yoast SEO ou Advanced Custom Fields) apparaissent systématiquement en haut de page après une action ou une mise à jour.
Dans le cas du plugin Hello Dolly, admin_notices est utilisé de manière détournée, presque poétique. Plutôt que d’afficher une alerte technique ou un message lié à l’état du site, le hook est ici utilisé pour injecter une citation tirée de la chanson « Hello, Dolly! », interprétée par Louis Armstrong. Ce choix confère au plugin une dimension plus humaine et chaleureuse, rappelant que le back-office n’est pas seulement un espace fonctionnel, mais peut aussi être un lieu de personnalisation et d’inspiration. Voici un exemple de balise HTML générée par le plugin lors de l’exécution du hook admin_notices :
<p id="dolly">You're still glowin', you're still crowin', you're still goin' strong</p>
Ce paragraphe est injecté dans le flux HTML des pages d’administration grâce à la fonction echo contenue dans la fonction hello_dolly(). L’attribut id="dolly" permet d’identifier facilement l’élément dans le DOM, ce qui rend sa personnalisation simple et rapide via CSS. Voici un exemple de style CSS que l’on pourrait ajouter dans une feuille de style dédiée à l’administration (par exemple via le hook admin_enqueue_scripts) pour personnaliser l’apparence de la citation :
#dolly {
float: right;
padding: 10px;
margin: 0;
font-size: 12px;
color: #777;
font-style: italic;
background-color: #f9f9f9;
}
Ce style discret permet de positionner la citation dans l’angle supérieur droit, de la différencier visuellement du reste du contenu administratif, et de renforcer sa fonction de clin d’œil quotidien. Il est tout à fait possible d’aller plus loin en ajoutant des animations CSS, des icônes SVG ou même des effets sonores via JavaScript pour enrichir l’expérience utilisateur – bien que cela sorte de l’esprit sobre du plugin original. Pour les développeurs débutants, le hook admin_notices constitue un excellent point de départ. Il permet de :
- Comprendre comment injecter dynamiquement du HTML dans l’administration WordPress ;
- Maîtriser les bases de la communication entre le code PHP backend et l’interface utilisateur ;
- Tester rapidement des interactions simples sans avoir à manipuler des structures complexes comme les metaboxes, les shortcodes ou l’éditeur de blocs ;
- Apprendre à structurer un message HTML accessible et non intrusif dans une interface utilisateur professionnelle.
À noter que si l’on souhaite afficher des messages uniquement dans certaines pages spécifiques de l’administration (par exemple uniquement dans la page des réglages ou dans l’écran d’édition d’un article), il est possible de combiner le hook admin_notices avec une condition basée sur get_current_screen() ou sur les variables globales $pagenow et $_GET.
function hello_dolly_conditional_notice() {
$screen = get_current_screen();
if ( $screen->id === 'dashboard' ) {
hello_dolly();
}
}
add_action( 'admin_notices', 'hello_dolly_conditional_notice' );
Cela permet de mieux cibler le contexte d’affichage, ce qui est une bonne pratique lorsque l’on développe des plugins à usage professionnel ou lorsqu’on souhaite limiter les distractions pour les utilisateurs du back-office.
Ainsi, le hook admin_notices n’est pas uniquement un outil utilitaire pour afficher des messages techniques. Utilisé avec finesse, il devient un moyen d’expression dans l’interface d’administration de WordPress. Avec Hello Dolly, il prend même une dimension artistique, illustrant parfaitement comment les fondations techniques de WordPress peuvent être détournées pour créer une expérience plus humaine et personnalisée.

0 commentaires