Guide complet des hooks WordPress (actions & filtres)

1️⃣ Qu’est-ce qu’un hook dans WordPress ?

Un hook (crochet en français) est un point d’ancrage dans le code de WordPress où vous pouvez insérer du code personnalisé pour modifier ou ajouter des fonctionnalités.

Sans modifier le code source 🎯
Facile à utiliser 🛠️
Compatible avec les mises à jour de WordPress 🔄

📌 Il existe deux types de hooks :

  • Les actions 👉 Pour ajouter ou exécuter du code à un moment précis
  • Les filtres 👉 Pour modifier des données avant leur affichage ou enregistrement

2️⃣ Les actions WordPress : Ajouter du code à un moment précis

Les actions permettent d’exécuter une fonction à un moment précis du cycle de WordPress (chargement du thème, affichage du contenu, enregistrement d’un utilisateur, etc.).

📌 2.1 Syntaxe d’une action

phpCopierModifieradd_action('nom_du_hook', 'nom_de_votre_fonction');
function nom_de_votre_fonction() {
    // Code à exécuter
}

👉 Exemple : Ajouter un texte avant le contenu d’un article

phpCopierModifierfunction ajouter_message_avant_contenu($contenu) {
    if (is_single()) {
        $contenu = '<p><strong>🔥 Bonne lecture !</strong></p>' . $contenu;
    }
    return $contenu;
}
add_filter('the_content', 'ajouter_message_avant_contenu');

🛠️ Explication :

  • is_single() vérifie si nous sommes sur un article
  • On ajoute un message avant le contenu
  • add_filter('the_content', ...) applique notre modification

📌 Autre exemple : Ajouter du code dans le footer

phpCopierModifierfunction ajouter_texte_footer() {
    echo '<p style="text-align:center; color:gray;">© ' . date('Y') . ' - Mon Site</p>';
}
add_action('wp_footer', 'ajouter_texte_footer');

💡 Action utilisée : wp_footer → s’exécute juste avant la fermeture de <body>


3️⃣ Les filtres WordPress : Modifier des données avant affichage ou enregistrement

Les filtres permettent de modifier une valeur avant son affichage ou son stockage en base de données.

📌 3.1 Syntaxe d’un filtre

phpCopierModifieradd_filter('nom_du_hook', 'nom_de_votre_fonction');
function nom_de_votre_fonction($valeur) {
    // Modifier la valeur et la retourner
    return $valeur;
}

📌 3.2 Exemple : Modifier le titre d’un article

phpCopierModifierfunction personnaliser_titre($titre) {
    return '🔥 ' . $titre;
}
add_filter('the_title', 'personnaliser_titre');

📌 Ce code ajoute 🔥 devant tous les titres d’articles


4️⃣ Différences entre actions et filtres 🚀

TypeObjectifExemple d’utilisation
ActionExécuter du code à un moment donnéAjouter du texte avant le footer (wp_footer)
FiltreModifier une valeur avant affichageModifier le titre d’un article (the_title)

💡 Une action ne retourne rien, un filtre doit retourner une valeur !


5️⃣ Quelques hooks utiles dans WordPress

📌 Hooks d’actions populaires

HookDescription
wp_enqueue_scriptsCharger CSS et JS dans le thème
wp_footerExécuter du code avant la fermeture de <body>
initExécuter du code dès que WordPress est chargé
admin_menuModifier le menu d’administration
save_postExécuter du code après l’enregistrement d’un article

📌 Hooks de filtres populaires

HookDescription
the_titleModifier le titre d’un article
the_contentModifier le contenu d’un article
excerpt_lengthModifier la longueur des extraits d’articles
login_redirectModifier la redirection après connexion
comment_textModifier le texte des commentaires

6️⃣ Créer ses propres hooks personnalisés 🏗️

WordPress permet aussi de créer ses propres hooks pour permettre à d’autres développeurs d’étendre votre code.

📌 6.1 Créer une action personnalisée

Dans un plugin ou un fichier functions.php, vous pouvez définir un point d’accroche :

phpCopierModifierfunction ma_fonction_perso() {
    echo '<p>✨ Mon hook personnalisé !</p>';
}
add_action('mon_hook_perso', 'ma_fonction_perso');

Et vous appelez ce hook où vous voulez dans votre thème :

phpCopierModifierdo_action('mon_hook_perso');

📌 6.2 Créer un filtre personnalisé

De même, vous pouvez créer un filtre personnalisable :

phpCopierModifierfunction mon_filtre_perso($texte) {
    return strtoupper($texte); // Convertit en majuscules
}
add_filter('mon_hook_filtre', 'mon_filtre_perso');

Puis l’appliquer ainsi :

phpCopierModifierecho apply_filters('mon_hook_filtre', 'Bonjour WordPress');

📌 Résultat affiché : BONJOUR WORDPRESS


7️⃣ Bonnes pratiques pour utiliser les hooks correctement

Utiliser un préfixe pour éviter les conflits (monplugin_nom_hook)
Toujours vérifier les données reçues (if (!is_admin()) {...})
Retourner la valeur dans un filtre (return $valeur;)
Documenter ses hooks pour les autres développeurs


🎯 Conclusion : Maîtrisez les hooks pour personnaliser WordPress !

🔹 Les actions permettent d’exécuter du code à un moment donné.
🔹 Les filtres permettent de modifier une valeur avant son affichage.
🔹 WordPress propose des centaines de hooks pour personnaliser le CMS.
🔹 Vous pouvez aussi créer vos propres hooks pour rendre votre code plus modulaire.

📌 Besoin d’aide ? Une question ? 💬 Dites-moi tout en commentaire ! 😊

carle
carle