Quiconque a déjà installé un thème premium depuis un market comme ThemeForest connaît cet écran : un bandeau jaune en haut de l’administration annonce que trois ou quatre extensions sont « requises » ou « recommandées », avec un lien pour tout installer d’un coup. Ce bandeau, dans l’immense majorité des cas, n’est pas un code maison de l’auteur du thème : c’est TGM Plugin Activation, une bibliothèque PHP open source qu’on embarque directement dans son propre thème ou plugin.
TGMPA résout un problème réel : un thème qui dépend d’un constructeur de pages ou d’un plugin de champs personnalisés ne peut pas supposer que ce plugin est déjà installé. Sans mécanisme dédié, l’auteur du thème n’a que deux mauvaises options, soit expliquer dans une documentation que personne ne lit comment installer les dépendances à la main, soit embarquer le code du plugin tiers directement dans le thème, ce qui casse toute mise à jour indépendante.
Comment fonctionne la bibliothèque côté développeur
Concrètement, TGMPA s’installe en copiant son fichier class-tgm-plugin-activation.php dans le thème ou le plugin, puis en déclarant la liste des dépendances via un tableau de configuration accroché à l’action tgmpa_register :
add_action( 'tgmpa_register', function() {
$plugins = array(
array(
'name' => 'Advanced Custom Fields',
'slug' => 'advanced-custom-fields',
'required' => true,
),
array(
'name' => 'WooCommerce',
'slug' => 'woocommerce',
'required' => false,
),
);
$config = array(
'id' => 'mon-theme',
'menu' => 'installer-extensions',
'has_notices' => true,
'dismissable' => false,
);
tgmpa( $plugins, $config );
} );
À l’activation du thème ou du plugin, la bibliothèque compare cette liste à l’état réel de l’installation et affiche un avis d’administration si une dépendance manque, avec un lien vers un écran dédié qui propose l’installation ou l’activation en un clic, en s’appuyant sur les fonctions natives de WordPress comme Plugin_Upgrader.
Ce qu’elle fait réellement, et ce qu’elle ne fait pas

Il est important de bien cerner le périmètre de TGMPA pour ne pas lui reprocher des défauts qui ne sont pas les siens. La bibliothèque gère strictement trois choses : détecter l’absence ou l’obsolescence d’un plugin requis, afficher un avis clair à ce sujet, et déclencher l’installation ou l’activation à la demande de l’utilisateur, via l’API native WP_Filesystem.
Elle ne fait en revanche jamais rien sans action explicite de l’utilisateur. Il n’existe aucun mécanisme d’installation silencieuse en arrière-plan : c’est un choix assumé par ses auteurs, cohérent avec la philosophie de WordPress qui laisse toujours le contrôle final à l’administrateur du site.
Les angles morts qu’il faut connaître
- Aucune gestion de version minimale fine : TGMPA sait dire « installé » ou « pas installé », mais la vérification de compatibilité de version reste à la charge du développeur qui l’utilise.
- Pas de mise à jour automatique des plugins requis une fois installés : l’utilisateur reste responsable de garder ses dépendances à jour, comme pour n’importe quel autre plugin.
- Une interface utilisateur qui a peu évolué depuis sa création et qui détonne visuellement avec l’administration moderne de WordPress, notamment depuis l’arrivée des cartes et des composants plus arrondis à partir de la version 5.3.
- Un fichier de classe assez lourd (plusieurs milliers de lignes) à embarquer tel quel dans chaque thème ou plugin qui l’utilise, faute de gestionnaire de dépendances central côté WordPress à l’époque de sa conception.
Pourquoi elle reste largement utilisée en 2020
Malgré son âge, TGMPA continue d’équiper une grande partie des thèmes vendus sur les places de marché premium, pour une raison simple : elle fonctionne, elle est bien documentée, et surtout elle est familière à des millions d’utilisateurs qui ont déjà vu cet écran d’avertissement sur un autre site. Remplacer ce mécanisme par quelque chose de personnalisé demanderait un travail de réapprentissage pour peu de bénéfice tangible.
Une dépendance bien signalée vaut toujours mieux qu’une dépendance silencieusement absente qui casse une page d’accueil.
Alternatives et complémentarité
Certains développeurs préfèrent une vérification manuelle plus légère, via un simple test is_plugin_active() combiné à un avis d’administration natif déclenché sur admin_notices. Cette approche évite d’embarquer une bibliothèque entière quand une seule dépendance est en jeu, mais elle demande de recoder soi-même l’installation en un clic si l’on veut offrir la même expérience utilisateur.
Il existe aussi des solutions plus modernes centrées sur la gestion de version, comme Plugin Dependencies évoqué dans l’écosystème WordPress pour une future version du cœur, mais au moment où cet article est écrit, rien de tel n’existe encore nativement, et TGMPA reste l’option la plus mature pour ce cas d’usage.
Notre verdict
TGM Plugin Activation n’est ni obsolète ni révolutionnaire : c’est un outil pragmatique qui répond correctement à un besoin de distribution précis, celui d’un thème ou d’un plugin qui dépend d’autres extensions. Ses limites, l’absence de mise à jour automatique et une interface datée, sont connues et acceptées par sa communauté d’utilisateurs. Pour un développeur qui distribue un thème avec des dépendances, elle reste en 2020 un choix par défaut raisonnable, à condition de ne pas lui demander plus que ce pour quoi elle a été conçue.