Ressources pour développeur web

Théme de la semaine : Wordpress

remove_action Wordpress : Supprimer des fonctions inutiles

Temps de lecture estimé : 8 minutes
Accueil PHP 8 remove_action Wordpress : Supprimer des fonctions inutiles

Votre site WordPress est lent, surchargé ou rempli de fonctionnalités inutiles ? La fonction remove_action permet de supprimer facilement ces éléments indésirables sans modifier les fichiers du thème ou des plugins. En maîtrisant remove_action, vous pouvez alléger votre code, améliorer les performances et reprendre le contrôle total de votre WordPress, même en étant débutant.

  • Reprendre le contrôle total de votre site WordPress en supprimant facilement les fonctionnalités inutiles ajoutées par défaut, par votre thème ou vos plugins.
  • Améliorer les performances et la propreté de votre code en éliminant les scripts et éléments superflus qui ralentissent votre site.
  • Gagner en maîtrise technique pour personnaliser WordPress en profondeur sans modifier directement les fichiers des plugins ou du thème.

WordPress vous donne un pouvoir énorme pour reprendre le contrôle. Et ce pouvoir s’appelle remove_action.

Dans ce tutoriel, vous allez apprendre à utiliser et maîtriser remove_action pour supprimer proprement des fonctionnalités inutiles. Même si vous débutez, ne vous inquiétez pas : nous allons avancer étape par étape, avec des exemples concrets et du code prêt à l’emploi.

Comprendre le fonctionnement de WordPress

Avant de parler de remove_action, il faut comprendre comment WordPress fonctionne en coulisses.

Le principe des hooks (actions et filtres)

WordPress repose sur un système appelé hooks. Derrière ce mot un peu technique se cachent deux concepts simples :

  • Les actions (add_action) : permettent d’ajouter du code à un moment précis
  • Les filtres (add_filter) : permettent de modifier une donnée

Imaginez WordPress comme une chaîne de montage. À certains moments clés (chargement de la page, affichage du contenu, envoi d’un email…), vous pouvez brancher du code.

Par exemple :

add_action('wp_footer', 'ajouter_message');

function ajouter_message() {
    echo '<p>Merci de votre visite !</p>';
}

Ici, on dit à WordPress : « Quand tu affiches le footer, ajoute ce message. »

👉 Pour ceux qui débutent, Tout comprendre aux Hooks add_action et add_filter.

Et remove_action dans tout ça ?

Maintenant que vous avez compris le principe, voici la logique :

  • Si add_action ajoute quelque chose…
  • remove_action le supprime.
remove_action dans Worpdress

Simple, non ?

Définition simple de remove_action

remove_action permet de désactiver une action déjà ajoutée, que ce soit par :

  • WordPress lui-même
  • un plugin
  • votre thème

Pourquoi utiliser remove_action ?

Vous pourriez vous dire : “Ok, mais pourquoi je voudrais supprimer des actions ?”

Pour améliorer les performances : Certains plugins ajoutent du code partout, même si vous n’en avez pas besoin. Résultat : votre site charge plus lentement.

  • Avec remove_action, vous pouvez enlever ce code inutile.

Nettoyer le HTML : WordPress ajoute parfois des éléments automatiques dans le <head> :

  • emojis
  • version WordPress
  • liens RSS inutiles

Cela peut rendre votre code plus lourd… et moins propre.

Garder le contrôle : Certains thèmes ou plugins prennent des décisions à votre place. Et parfois… ce n’est pas les bonnes. remove_action vous permet de dire :

« Merci, mais non merci. »

La syntaxe de remove_action

Voici la structure de base :

remove_action('hook_name', 'function_name', priority);

Décomposons :

  • hook_name : l’endroit où l’action est attachée
  • function_name : la fonction à supprimer
  • priority : l’ordre d’exécution (optionnel mais souvent nécessaire)

Exemple concret et ultra simple

Imaginons que votre thème ajoute un message dans le footer :

add_action('wp_footer', 'mon_message');

function mon_message() {
    echo 'Hello !';
}

Vous voulez le supprimer. La solution :

remove_action('wp_footer', 'mon_message');

Attention à un point important

Pour que remove_action fonctionne, il faut :

  1. Le même hook
  2. La même fonction
  3. La même priorité (si définie)
  • Sinon… ça ne marche pas.

Et là, vous risquez de perdre du temps à chercher pourquoi …

Exemple avec priorité

add_action('wp_footer', 'mon_message', 20);

Alors pour supprimer :

remove_action('wp_footer', 'mon_message', 20);
  • Si vous oubliez le 20, ça ne fonctionnera pas.

Où placer votre remove_action ?

C’est une question essentielle.

Option 1 : functions.php

Dans votre thème : dans le fichier functions.php.

Option 2 (recommandé) : un plugin personnalisé

C’est la meilleure solution pour éviter les mauvaises surprises lors d’une mise à jour du thème. Créez un plugin simple :

<?php
/**
 * Plugin Name: Nettoyage WordPress
 */

add_action('init', function() {
    remove_action('wp_footer', 'mon_message');
});

Pourquoi utiliser init ?

Parce que vous devez attendre que l’action soit enregistrée avant de la supprimer. Sinon, WordPress ne la connaît pas encore… donc impossible de la retirer.

👉 Apprenez à Coder une extension Wordpress

Cas concret : supprimer les emojis WordPress

WordPress ajoute automatiquement le support des emojis. Sympa… mais inutile dans beaucoup de cas.

Le code pour les supprimer :

remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

Explication

  • wp_head → code injecté dans le <head>
  • wp_print_styles → styles chargés

Résultat : moins de scripts, site plus léger.

Cas concret de remove_action : enlever la version WordPress

WordPress affiche sa version dans le code source. Pas dramatique… mais pas très sécurisé.

Le code pour supprimer la version de Wordpress :

remove_action('wp_head', 'wp_generator');

Cas concret : supprimer les liens RSS inutiles

remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');

Supprimer des actions venant d’un plugin

Jusqu’ici, tout allait bien : on supprimait des actions simples. Mais dans la réalité, vous allez surtout utiliser remove_action pour désactiver ce que font les plugins. Et là… ça se complique un peu.

Mais rassurez-vous, on va décortiquer ça tranquillement.

Cas 1 : un plugin ajoute une fonction simple

Certains plugins utilisent une fonction classique :

add_action('wp_head', 'plugin_ajout_script');

Dans ce cas, vous pouvez simplement faire :

remove_action('wp_head', 'plugin_ajout_script');

Facile. Presque trop facile.

Cas 2 : une méthode de classe (le cas le plus fréquent)

La plupart des plugins modernes utilisent des classes PHP. Par exemple :

class MonPlugin {
    public function ajouter_script() {
        echo '<script>console.log("Hello");</script>';
    }
}

$plugin = new MonPlugin();
add_action('wp_head', [$plugin, 'ajouter_script']);

Et là… surprise : remove_action ne fonctionne plus comme avant.

Pourquoi ça ne marche pas ? Parce que WordPress ne stocke pas juste le nom de la fonction… Il stocke aussi l’instance de la classe.

Donc si vous faites :

remove_action('wp_head', ['MonPlugin', 'ajouter_script']);

❌ Ça ne marche pas.

Formation web et informatique - Alban Guillier - Formateur

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 ?
  • La bonne solution consiste à récupérer l’instance

Il faut supprimer l’action avec la même instance :

global $plugin;
remove_action('wp_head', [$plugin, 'ajouter_script']);

Mais attention : encore faut-il que cette instance soit accessible. Et souvent… elle ne l’est pas.

Astuce : utiliser le bon hook

Pour réussir un remove_action, il faut intervenir au bon moment :

add_action('init', function() {
    remove_action('wp_head', 'plugin_ajout_script');
});

Mais parfois init est trop tôt ou trop tard.

Dans ce cas, vous pouvez essayer aussi :

add_action('wp_loaded', function() {
    remove_action('wp_head', 'plugin_ajout_script');
});

Supprimer une action inconnue

Parfois, vous ne connaissez :

  • Ni la fonction
  • Ni la classe
  • Ni la priorité

Et là… c’est le flou total.

Solution : inspecter les hooks

Vous pouvez afficher les actions attachées :

global $wp_filter;
print_r($wp_filter['wp_head']);

C’est un peu brutal… mais très efficace pour debugger.

Exemple concret : supprimer un script inutile d’un plugin SEO

Certains plugins SEO ajoutent :

  • du JavaScript inutile
  • des meta tags dont vous ne voulez pas

Exemple fictif :

add_action('wp_head', 'seo_plugin_head_output', 10);

Puis la suppression en rapport :

add_action('init', function() {
    remove_action('wp_head', 'seo_plugin_head_output', 10);
});

Supprimer une action WooCommerce

WooCommerce ajoute énormément de choses automatiquement. Par exemple :

add_action('woocommerce_before_shop_loop', 'woocommerce_result_count', 20);

Vous voulez enlever le compteur de produits :

remove_action('woocommerce_before_shop_loop', 'woocommerce_result_count', 20);

Exemple concret : enlever les breadcrumbs WooCommerce

remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);

Résultat : plus de fil d’Ariane en provenance de WooCommerce.

Et là, vous commencez à voir la puissance de remove_action

Avec remove_action, vous pouvez :

  • désactiver des parties entières d’un plugin
  • modifier l’affichage sans toucher au code source
  • alléger votre site

Les erreurs fréquentes et comment les éviter

1. Mauvais hook

Vous pensez supprimer une action… mais vous utilisez le mauvais hook. Pensez à toujours d’abord vérifier :

  • wp_head
  • wp_footer
  • init
  • etc.

2. Mauvaise priorité

C’est LE piège classique. Si l’action a une priorité 20 :

remove_action('hook', 'fonction', 10);

❌ Ne fonctionne pas.

3. remove_action trop tôt

Si vous faites :

remove_action(...);

directement dans functions.php, ça peut échouer.

La meileures solution sera :

add_action('init', function() {
    remove_action(...);
});

4. Classe inconnue

Vous ne savez pas comment le plugin fonctionne.

  • cherchez dans les fichiers du plugin
  • recherchez add_action

Créer votre système de nettoyage WordPress

Maintenant, on va faire quelque chose de propre.

Objectif : Créer un bloc central pour nettoyer WordPress.

add_action('init', function() {

    // Supprimer emojis
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');

    // Supprimer version WordPress
    remove_action('wp_head', 'wp_generator');

    // Supprimer RSD
    remove_action('wp_head', 'rsd_link');

    // Supprimer WLW
    remove_action('wp_head', 'wlwmanifest_link');

});

Organiser votre code proprement

Si vous voulez aller plus loin :

function crea_cleanup_wp() {

    remove_action('wp_head', 'wp_generator');

}

add_action('init', 'crea_cleanup_wp');

C’est plus lisible et plus maintenable.

Concrètement, qu’est-ce que ça change ?

Après quelques remove_action, vous allez constater :

  • un HTML plus propre
  • moins de scripts
  • un site plus rapide
  • une meilleure maîtrise technique

Et surtout… Vous ne subissez plus WordPress. Vous le contrôlez.

remove_filter : modifier ou supprimer un contenu généré

Si remove_action sert à enlever du code exécuté à un moment précis, remove_filter permet de supprimer une modification appliquée à une donnée.

Concrètement, un filtre agit sur du contenu (un texte, un titre, une classe CSS…) avant qu’il soit affiché.

  • C’est donc l’outil idéal si vous voulez empêcher WordPress ou un plugin de modifier un contenu.

Exemple simple pour bien comprendre

Imaginons qu’un plugin ajoute automatiquement du texte à la fin de vos articles :

add_filter('the_content', 'ajouter_signature');

function ajouter_signature($content) {
    return $content . '<p>Merci de votre lecture !</p>';
}

Chaque article affichera cette signature.

Supprimer cette modification avec remove_filter

remove_filter('the_content', 'ajouter_signature');

Explication

  • the_content → filtre appliqué au contenu des articles
  • ajouter_signature → fonction qui modifie le texte

Avec remove_filter, vous dites simplement à WordPress : “Ne modifie plus ce contenu.”

À retenir

Comme pour remove_action, vous devez utiliser :

  • le bon hook (the_content ici)
  • la bonne fonction
  • la bonne priorité si elle est définie

Et comme toujours… placez votre code au bon moment (souvent via init) pour garantir que le filtre existe déjà avant de le supprimer.

FAQ : remove_action WordPress

remove_action ne fonctionne pas, pourquoi ?

Dans la majorité des cas, le problème vient d’un mauvais hook, d’une priorité différente ou d’un appel trop tôt dans le cycle WordPress. Vérifiez que vous utilisez exactement les mêmes paramètres que l’add_action d’origine.

Peut-on utiliser remove_action sans risque pour son site ?

Oui, à condition de savoir ce que vous supprimez. Enlever une action utile peut casser une fonctionnalité (affichage, plugin, etc.). Il est recommandé de tester chaque modification sur un environnement de préproduction.

Quelle différence entre remove_action et remove_filter ?

remove_action sert à supprimer une action (ajout de contenu ou exécution de code), tandis que remove_filter permet de retirer une modification appliquée à une donnée. Les deux fonctionnent de manière similaire, mais sur des usages différents.


Maîtriser remove_action, ce n’est pas juste apprendre une fonction. C’est comprendre comment WordPress fonctionne réellement.

Au début, cela peut sembler un peu technique. Mais très vite, vous allez prendre confiance… et commencer à voir votre site différemment. Vous allez identifier ce qui est inutile, ce qui ralentit, ce qui pollue.

Et petit à petit, vous allez transformer votre site en quelque chose de plus propre, plus rapide, plus professionnel.

Alors la prochaine fois que vous voyez un élément inutile sur votre site, ne soupirez plus… Demandez-vous simplement : “Est-ce que je peux le supprimer avec remove_action ?”