Vous souhaitez personnaliser WordPress sans casser votre site ? Les fonctions add_action et add_filter sont la clé. Grâce à ce hook, vous pouvez intervenir précisément dans le fonctionnement de WordPress, ajouter des fonctionnalités et modifier les contenus facilement. Dans ce guide,
- Intervenir dans WordPress sans casser le site ni modifier son cœur
- Gagner en autonomie pour personnaliser un thème ou un plugin selon vos besoins réels
- Poser des bases solides pour développer des fonctionnalités propres, évolutives et professionnelles
Dans ce tutoriel, vous allez découvrir deux fonctions absolument essentielles : add_action et add_filter. Vous allez comprendre comment utiliser add_action et add_filter pour créer vos propres hooks Wordpress et gagner en liberté dans vos développements.
Comprendre le système de hooks WordPress
Avant même de parler de add_action ou add_filter, il faut comprendre un concept fondamental : les hooks.
Un hook, c’est quoi exactement ?
Imaginez WordPress comme une grande machine bien huilée. À certains moments précis, cette machine s’arrête quelques millisecondes et vous dit :
“Si tu veux intervenir ici, c’est maintenant.”
Ces points d’arrêt s’appellent des hooks.

Il en existe deux types :
- Les actions → pour exécuter du code
- Les filters (filtres) → pour modifier une donnée
Et c’est là que nos deux fonctions stars entrent en scène.
add_action : intervenir au bon moment
La fonction add_action permet d’exécuter une fonction personnalisée à un moment précis dans WordPress.
Syntaxe de add_action
add_action('nom_du_hook', 'nom_de_la_fonction');
nom_du_hook→ le moment où vous interveneznom_de_la_fonction→ ce que vous voulez faire
Exemple simple : afficher un message dans le footer
Imaginons que vous voulez ajouter un petit message en bas de votre site.
function mon_message_footer() {
echo '<p style="text-align:center;">Merci de votre visite !</p>';
}
add_action('wp_footer', 'mon_message_footer');
- WordPress arrive à la fin de la page (
wp_footer) - Il voit que vous avez accroché une fonction
- Il exécute votre code
- Votre message apparaît dans le footer.
Simple… mais déjà très puissant.
Comprendre le “hook” utilisé
Dans cet exemple, on utilise :
wp_footer
Ce hook est déclenché juste avant la fermeture de la balise </body>.
Il existe des centaines de hooks dans WordPress. Voici quelques exemples utiles :
init→ au démarrage de WordPresswp_head→ dans le<head>wp_footer→ en bas de pagesave_post→ lors de la sauvegarde d’un article
Ajouter une priorité
Par défaut, WordPress exécute vos fonctions dans l’ordre où elles sont ajoutées. Mais vous pouvez contrôler ça avec une priorité.
add_action('wp_footer', 'mon_message_footer', 20);
- Plus le chiffre est petit → plus ça s’exécute tôt
- Par défaut → 10
Par exemple, pour ajouter un script JS :
function ajouter_script_custom() {
echo '<script>console.log("Hello Créa-blog !");</script>';
}
add_action('wp_footer', 'ajouter_script_custom');
Très pratique pour tester ou injecter du JS rapidement.
Modifier le back-office
Si vous souhaitez afficher un message dans l’admin :
function message_admin() {
echo '<div class="notice notice-success"><p>Bienvenue sur votre site !</p></div>';
}
add_action('admin_notices', 'message_admin');
Résultat : un message s’affiche dans l’administration.
add_filter : modifier les données
Maintenant, passons à add_filter, qui est souvent plus subtil… mais encore plus puissant.
- Contrairement à add_action, add_filter sert à modifier une valeur.
Syntaxe de add_filter
add_filter('nom_du_hook', 'nom_de_la_fonction');
Mais ici, il y a une différence importante : Votre fonction doit retourner une valeur
Exemple simple : modifier un titre
function modifier_titre($titre) {
return '🔥 ' . $titre;
}
add_filter('the_title', 'modifier_titre');
Ce qu’il se passe :
- WordPress récupère un titre
- Il passe ce titre dans votre fonction
- Vous le modifiez
- Vous le renvoyez
Résultat : tous vos titres auront un petit emoji 🔥
Différence clé avec add_action
C’est LE point à retenir :
- add_action → exécute du code (pas de retour obligatoire)
- add_filter → modifie une donnée (retour obligatoire)
Si vous oubliez le return avec add_filter… rien ne fonctionne.
Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?Modifier le contenu d’un article
function ajouter_signature($content) {
return $content . '<p>Merci d’avoir lu cet article 😊</p>';
}
add_filter('the_content', 'ajouter_signature');
Ainsi, une signature s’ajoute automatiquement à chaque article.
Modifier un extrait
function modifier_excerpt($excerpt) {
return $excerpt . '... Lire la suite sur notre site';
}
add_filter('the_excerpt', 'modifier_excerpt');
Comment WordPress relie tout ça ?
C’est une question essentielle. En réalité, WordPress utilise en interne des fonctions comme :
do_action()apply_filters()
do_action('wp_footer');
WordPress dit :
“Toutes les fonctions attachées à wp_footer… exécutez-vous maintenant.”
Et pour les filtres :
$titre = apply_filters('the_title', $titre);
WordPress dit :
“Qui veut modifier ce titre ?”
Où mettre votre code ?
Bonne question, et elle est cruciale.
Option 1 : functions.php, c’est rapide mais risqué
wp-content/themes/votre-theme/functions.php
Le problème : si vous changez de thème, vous perdez tout.
Option 2 : plugin personnalisé, la solution recommandée
Créez un fichier :
wp-content/plugins/mon-plugin/mon-plugin.php
Avec :
<?php
/*
Plugin Name: Mon Plugin Custom
*/
Et ajoutez votre code dedans.
L’avantage est que votre code reste actif, peu importe le thème.
👉 En savoir plus sur : Comment coder une extension Wordpress
Toujours préfixer vos fonctions
function crea_mon_message_footer() {
// code
}
Cela évite les conflits avec d’autres plugins.
Vérifier si la fonction existe
if (!function_exists('crea_mon_message_footer')) {
function crea_mon_message_footer() {
// code
}
}
Ne pas surcharger inutilement
Ajoutez du code uniquement si nécessaire. WordPress est déjà une machine complexe… inutile d’ajouter du chaos 😄
Exemple complet (add_action + add_filter)
Imaginons un cas réel. Vous voulez :
- Ajouter un message dans le footer
- Modifier les titres
function crea_footer_message() {
echo '<p style="text-align:center;">Site créé avec passion</p>';
}
add_action('wp_footer', 'crea_footer_message');
function crea_modifier_titre($titre) {
return strtoupper($titre);
}
add_filter('the_title', 'crea_modifier_titre');
Résultat :
- Footer personnalisé
- Titres en majuscules
Imaginez un restaurant :
- add_action → vous ajoutez un serveur qui intervient à un moment précis
- add_filter → vous modifiez une recette avant qu’elle soit servie
Les deux travaillent ensemble… mais pas de la même façon.
Ce que vous devez retenir
Même si tout semble nouveau, retenez ceci :
- add_action → déclenche une action
- add_filter → modifie une donnée
- Les hooks sont partout dans WordPress
- Vous pouvez personnaliser presque tout sans toucher au cœur
Tableau récapitulatif des 25 hooks WordPress les plus utilisés
| Hook | Type | Description | Utilisation courante |
|---|---|---|---|
init | Action | Initialise WordPress | Déclarer CPT, taxonomies |
wp_loaded | Action | WordPress entièrement chargé | Lancer du code après init |
template_redirect | Action | Avant affichage template | Redirections |
wp_head | Action | Dans le <head> | Ajouter CSS, meta |
wp_footer | Action | Avant </body> | Scripts JS |
wp_enqueue_scripts | Action | Charger scripts/styles | Ajouter CSS/JS proprement |
admin_enqueue_scripts | Action | Scripts admin | Custom admin |
admin_init | Action | Init admin | Config backend |
admin_notices | Action | Messages admin | Alertes |
save_post | Action | Lors sauvegarde article | Traitement données |
before_delete_post | Action | Avant suppression | Nettoyage |
wp_login | Action | Connexion utilisateur | Logs, tracking |
user_register | Action | Nouvel utilisateur | Email, init profil |
the_content | Filter | Contenu article | Modifier texte |
the_title | Filter | Titre | Ajouter préfixe |
the_excerpt | Filter | Extrait | Modifier résumé |
excerpt_length | Filter | Longueur extrait | Ajuster taille |
excerpt_more | Filter | Suite extrait | Texte « Lire + » |
body_class | Filter | Classes <body> | Ajouter classes |
post_class | Filter | Classes article | CSS personnalisé |
nav_menu_css_class | Filter | Classes menu | Styliser menu |
upload_mimes | Filter | Types fichiers | Autoriser SVG |
login_redirect | Filter | Redirection login | Dashboard custom |
widget_text | Filter | Contenu widget | Modifier texte |
pre_get_posts | Action | Modifier requêtes WP | Custom boucle |
Vous venez de franchir un cap important. Comprendre add_action et add_filter, ce n’est pas juste apprendre deux fonctions… c’est comprendre comment WordPress respire, fonctionne, et surtout comment vous pouvez dialoguer avec lui.
À partir de maintenant, vous n’êtes plus limité par les thèmes ou les plugins. Vous pouvez intervenir exactement où vous voulez, quand vous voulez. Et ça, croyez-moi, c’est un vrai super pouvoir.

Fondateur de l’agence Créa-troyes, affiliée France Num
Intervenant en Freelance.
Contactez-moi
