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 Wordpress, 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.
Boostez votre maillage interne WP
Analysez votre structure SEO, détectez les pages orphelines, visualisez vos clusters et améliorez votre maillage interne facilement.
Extension WordPress gratuite développée par Créa-troyes (Alban GUILLIER).
Découvrir l’extensionComprendre 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.
👉 Pour les débutants, découvrez comment coder une fonction PHP pour Wordpress.
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.
👉 Tout comprendre au fichier functions.php Wordpress.
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.
👉 add_action et add_filter vous aideront à personnaliser votre Backoffice WordPress.
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.
👉 Maintenant que vous savez comment ajouter une fonction ou un filtre, apprenez à retirer les fonctions inutiles avec remove_action.

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