Si vous êtes un utilisateur WordPress vous avez sûrement déjà utilisé des plugins, mais probablement pas des mu-plugins.
Qu’est qu’un mu-plugin ?
Un MU-plugin est généralement composé d’un fichier et de quelques lignes de codes.
Ils sont activés par défaut et ne peuvent être désactivés par les utilisateurs via l’admin comme un plugin « classique ».
Contrairement aux plugins, le mu-plugin doit se trouver dans un dossier spécifique : mu-plugin dans le dossier wp-content.
Il est également possible de modifier leurs emplacements par défaut grâce à deux variables à placer dans wp-config.php : WPMU_PLUGIN_DIR / WPMU_PLUGIN_URL
Vous pourriez vous dire qu’il est préférable d’installer vos plugins préférés directement dans le répertoire mu-plugin pour que votre client ne désactive pas ce plugin, mais il existe quelques inconvénients.
Les mu-plugins de « génèrent » pas de notifications de mise à jour, ce qui peut-être gênant pour la sécurité de vos sites.
Beaucoup de plugins utilisent les hooks d’activation pour réaliser quelques modifications, mais un mu-plugin n’exécute pas ces hooks.
WordPress ne « regarde » que les fichiers dans le répertoire, pas les fichiers présent dans les sous-répertoires, contrairement aux plugins. Là encore il est possible de trouver une solution en réalisant un mu-plugin d’import.
<?php require WPMU_PLUGIN_DIR.'/mon-plugin/mon-plugin.php'; ?>
Pourquoi utiliser un mu-plugin ?
Quand nous créons des sites (WordPress dans ce cas) nous utilisons toujours quelques lignes de codes communes à l’ensemble des projets, customisation du login, suppression de la version de WordPress… Généralement ces quelques lignes se retrouvent dans le fichier functions.php et avant même de commencer le développement spécifique au client, ce fichier fait 2000 lignes :/ Pourquoi ne pas utiliser un mu-plugin, ils sont là pour ça !
Comment faire un mu-plugin ?
Quelques lignes de codes valent mieux qu’un long discours.
Retrouvez les mu-plugins que j’utilise pour certains de mes sites sur github.com/yannkozon/wp-mu-plugins
Vous trouverez ci-dessous mes slides lors de mon intervention lors du Lille WordPress Meetup #9.