Diije

Quick Hack : Déclencher des actions

Si vous avez déjà consulté ou mis en place des hacks sur votre blog WordPress, vous devez sans nul doute avoir déjà rencontré la fonction add_action( $tag , $function ). Cette fonction permet d’indiquer à WordPress qu’il faut exécuter une fonction ($function) donnée lorsque l’action ($tag) est déclenchée.

WordPress propose déjà une foultitude d’actions prédéfinies dans le noyau. Toutes ces actions (ou hooks) sont déclenchées par les différentes requêtes possibles sur un blog WordPress. Mais il est possible d’aller plus loin !

Déclenchez vous-même une action

Il arrive souvent, lorsqu’on développe un thème ou un plugin, qu’on ait besoin de déclencher une action à un endroit précis d’une page (par exemple) et que cette action ne soit malheureusement pas activée à cet endroit.
Dans ce cas-là la plupart du temps, on modifie la page en question pour y insérer un appel à la fonction qui va bien. Certes, ça fonctionne, et c’est suffisant lorsqu’on n’a qu’une seule fonction à utiliser.
Mais lorsque l’on veut pouvoir faire des choses un peu plus complexes, par exemple exécuter toutes les fonctions correspondantes à une action, on se retrouve souvent limité. Pourtant, une fonction existe dans le core de WordPress pour déclencher des actions : do_action() !

En fait, il suffit d’insérer dans votre code la ligne suivante pour déclencher une action en particulier, et donc exécuter toutes les fonctions qui s’y sont « branchées » :

<?php do_action( $tag ); ?>

Il vous suffit donc de trouver la bonne action à déclencher, et le tour est joué !

Sudo make me a sandwich

Créez vos propres actions !

Avec cette fonction, vous pouvez également créer vos propres actions, tout simplement en remplaçant $tag par un nom d’action qui n’existe pas dans le core de WordPress (ni dans vos plugins ou votre thème), et en y branchant ensuite les fonctions qui vont bien.
De cette façon, vous pouvez adapter encore un peu plus ce CMS à vos besoins.

Vous trouverez davantage d’informations et des exemples d’utilisation de do_action sur la page du Codex correspondante.