Un guide d'utilisation des plugins de fonctions personnalisées dans WordPress
Publié: 2024-03-07Pendant plus d'une décennie en tant que développeur backend WordPress, j'ai utilisé diverses méthodes pour ajuster WordPress à mes besoins et à ceux des autres. La solution la plus courante consiste à écrire des plugins de fonctions personnalisées WordPress. Comme vous le verrez ci-dessous, ce n’est pas la seule option et pas toujours la bonne.
Bien que je dédie cet article aux développeurs, les chefs de projet apprendront également comment ces méthodes correspondent aux besoins de leur équipe et quand et comment les utiliser.
Voici les méthodes que j’utilise pour personnaliser WordPress :
- Ajoutez votre code au
functions.php
du thème - Écrivez un plugin de fonction personnalisé WordPress
- Utiliser un plugin pour gérer des extraits de code personnalisés
- Bonus : doit utiliser des plugins
Examinons de plus près chacune de ces méthodes.
Ajouter du code au fonctions.php
Dans « l’ancien » temps, lorsque WordPress utilisait principalement PHP sur l’interface et le back-end, le moyen le plus rapide d’apporter des modifications à votre site consistait à ajouter le code au fichier function.php du thème.
Vous pouvez toujours le faire, et si vous l’osez, utilisez l’éditeur de fichiers de thème dans le tableau de bord WordPress.
Au fil du temps, cela est passé de ma manière préférée de personnaliser WordPress à celle que je préfère le moins.
La raison principale est que le functions.php
est attaché à un thème. Si ce n’est pas un thème personnalisé et que quelqu’un le met à jour, mes ajustements disparaîtront.
La solution consiste à créer un thème enfant contenant vos modifications liées au thème parent.
La principale raison pour laquelle je n'ajoute plus autant de code personnalisé au fichier functions.php
est qu'en réalité, la majeure partie de ce code était un territoire de plugin, ajoutant des fonctionnalités au site en général et non uniquement au thème.
Il existe encore deux situations dans lesquelles j'écris du code personnalisé dans le functions.php
:
- Le code concerne le thème personnalisé ou enfant.
- Tester les modifications rapides avant de les déplacer vers un autre endroit car le
functions.php
est souvent facile d'accès pour cela.
Gardez également à l’esprit que le functions.php
n’est pas l’endroit idéal pour héberger de nombreuses modifications, car un seul fichier peut devenir trop complexe. Surtout lorsque j’ai besoin de plusieurs fichiers PHP et autres types de fichiers dans mes modifications, je choisis d’écrire un plugin de fonction personnalisé WordPress.
Écriture de plugins de fonctions personnalisées
Comme mentionné précédemment, la plupart du code que j'ajoute à mon site crée ou étend des fonctionnalités indépendantes du thème.
Une fois que je sais que je vais ajouter plus de personnalisations à un site, je démarre un plugin de fonction personnalisé. Il porte généralement le nom du site, comme j'en appellerais un pour WP Mayor, le plugin « WP Mayor Custom Functions ».
Nommer est crucial ! Premièrement, cela permet aux autres administrateurs de voir que ce plugin est lié au site et n'héberge probablement que des modifications pour celui-ci.
Deuxièmement, garder le dossier du plugin et le nom de fichier uniques empêchera votre site WordPress de l'écraser accidentellement avec un plugin qui a le même slug dans le référentiel de plugins wordpress.org.
Créer un plugin de fonction personnalisée WordPress est simple. Tout ce dont vous avez besoin est un fichier PHP dans wp-content/plugins
. Cependant, vous devez d'abord créer un nouveau dossier, car vous avez souvent besoin de plusieurs fichiers pour structurer votre code et vous souhaiterez peut-être ajouter des fichiers pour le code JavaScript et CSS.
En suivant notre exemple, disons que nous avons maintenant le dossier du plugin wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php
et le fichier principal.
Ajoutons un en-tête au fichier pour indiquer à WordPress de quoi parle notre plugin. Bien que le « Nom du plugin » soit suffisant pour que cela fonctionne techniquement, jetons un coup d'œil à un exemple plus avancé :
/** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */
Cela devrait déjà apparaître sous « Plugins » dans notre tableau de bord WordPress.
Maintenant, nous pouvons nous déchaîner et ajouter du code PHP réel à notre fichier.
Astuce : lorsque je n'ai pas d'accès FTP à un site ou que je suis simplement paresseux, j'utilise le plugin Pluginception pour créer rapidement quelque chose que je pourrai ensuite remplir de code via l'éditeur de fichiers de plug-in dans le tableau de bord WordPress.
Devez-vous maintenant mettre tout le code d’un site spécifique dans un seul plugin de fonction personnalisé dédié ?
Ça dépend. Lorsque je sais que le code personnalisé est utilisé sur plusieurs projets, je le sépare dans un plugin différent. En parallèle, je rassemble le code dédié à un site spécifique dans un seul plugin. Moins il y a de plugins, moins je dois gérer de référentiels de code.
Ça a l’air bien jusqu’à présent ? Eh bien, tout en gérant une plus grande société de plugins au cours des dernières années et en apportant plus d'une centaine d'ajustements au site, j'ai remarqué que ces plugins personnalisés sont toujours très axés sur les développeurs. Examinons donc une autre approche dans la section suivante.
Utilisation d'un plugin de fonction personnalisé pour les extraits de code
Pendant la plupart de mon temps dans de grandes entreprises de plugins, j'étais responsable de l'aspect technique de notre boutique de plugins.
J'ai mis tout code qui n'était pas spécifique à un thème dans un seul plugin de fonction personnalisé. Tous les ajustements apportés aux plugins et personnalisations individuels, comme la redirection des cartes vides vers la page de tarification, les offres de vente incitative ou les offres du Black Friday, ont été documentés et répartis dans divers fichiers portant des noms lisibles.
Eh bien, « documenté » et « lisible » pour toute personne ayant accès au code.
Même si j'étais toujours là pour effectuer des ajustements ou répondre à des questions à leur sujet, je pensais que ce n'était pas une manière efficace et durable de gérer la plupart des fonctions personnalisées.
Avec de plus en plus de personnes impliquées dans la gestion du magasin et du site Internet, je voulais leur donner la chance de connaître les ajustements sans avoir à maintenir à jour une page dédiée de notre base de connaissances.
La solution consistait à installer un plugin de fonction personnalisée WordPress qui gère la totalité ou la plupart des extraits de code dans le tableau de bord WordPress.
Mon préféré est le plugin gratuit Code Snippets, mais il en existe d’autres également.
Avec les extraits de code, il existe un élément de menu dédié dans le tableau de bord avec tous les extraits de code.
Désormais, toute personne disposant d’un accès administrateur peut voir les ajustements. J'utilise des noms descriptifs pour chaque extrait, j'utilise le champ de notes pour le décrire en profondeur et j'attribue des balises aux modifications de groupe.
Mes balises sont généralement le nom du plugin ou du thème qui est ajusté et la section de la page concernée, comme « WooCommerce » et « Checkout ».
Si vous choisissez de bons noms et une bonne structure, tout le monde devrait pouvoir trouver et comprendre les ajustements. Moi y compris. J'utilise cette méthode même sur mes sites personnels car elle apporte beaucoup de confort.
L'utilisation d'un plugin de fonction personnalisé est particulièrement utile pour les extraits de code dont vous n'avez besoin que temporairement, comme un code de nettoyage qui ne doit être exécuté qu'une fois de temps en temps ou une action orientée front-end comme l'activation d'une promotion.
Est-ce sûr ?
Par défaut, WordPress permet à toute personne disposant du rôle « administrateur » de modifier les fichiers de plugin et de thème dans le backend. L'utilisation d'un plugin de code personnalisé n'est pas différente de cela. Ainsi, l’ancienne règle consistant à être défensif et à donner à chacun le rôle nécessaire s’applique toujours.
Les développeurs voudront peut-être savoir que certains très premiers hooks sur une demande de page ne sont pas disponibles lors de la gestion du code via un plugin, car le plugin lui-même doit d'abord être chargé. Si vous avez besoin que votre code personnalisé soit chargé avant tout autre plugin, consultez l'option Must Use plugins ci-dessous.
Fonctions WordPress personnalisées dans les plugins Must Use
Les plugins dits « à utiliser absolument » constituent une race particulière parmi les plugins.
Puisqu'ils s'exécutent avant tout autre plugin « normal », je les utilise pour activer ou désactiver des plugins spécifiques pour une page donnée. Vous pouvez utiliser un tel code pour accélérer les pseudo-API ou les appels à admin-ajax.php
.
Une autre caractéristique des plugins Must Use est qu’ils sont activés par défaut et que personne ne peut les désactiver ou les modifier via le tableau de bord WordPress. Cela les rend idéaux pour le code essentiel auquel même les utilisateurs administrateurs ne devraient pas pouvoir accéder.
Créer un plugin mu
Les plugins Must Use sont hébergés dans le dossier wp-content/mu-plugins
. Ce dossier n'existe pas dans une nouvelle installation WordPress. Certains plugins ou sociétés d'hébergement peuvent cependant ajouter du contenu ici de manière dynamique.
Pour ajouter un nouveau plugin dans le dossier mu-plugin, vous devez créer un fichier PHP sur votre ordinateur avec l'en-tête du fichier plugin que je vous ai montré ci-dessus pour notre plugin personnalisé. Cette fois, il n’est pas important de choisir un nom unique puisque les plugins Must Use ne sont pas mis à jour automatiquement.
Une fois que vous êtes satisfait de votre nouveau plugin de fonction personnalisée, téléchargez-le manuellement via FTP dans le dossier wp-content/mu-plugins
. Créez le dossier mu-plugins
s'il n'existe pas.
Bien que vous ne puissiez pas modifier les plugins Must Use via le panneau d’administration WordPress, vous pouvez les voir répertoriés sous Plugins > Must-Use.
Idéalement, les plugins Must Use sont des plugins à fichier unique. WordPress ne les trouve pas dans les sous-dossiers, bien que vous puissiez référencer des fichiers supplémentaires dans le fichier PHP principal. Mais si vous créez un plugin Must Use complexe, pensez à déplacer le code principal dans un plugin standard et utilisez le plugin MU uniquement pour charger ce qui est nécessaire pour s'exécuter avant tous les autres plugins.
Conclusion
Nous avons exploré les différentes méthodes permettant d'ajouter du code personnalisé à WordPress, depuis l'ajout traditionnel de code au fichier functions.php
d'un thème, en passant par les plugins autonomes et les plugins de fonctions personnalisées WordPress, jusqu'à l'utilisation de Must Use (mu-plugins). Chaque méthode offre son propre ensemble d’avantages et d’inconvénients potentiels, adaptés à différents besoins et scénarios.
Comme vous pouvez le constater, cela a été un parcours pour moi en tant que développeur et chef de projet. J’utilise encore aujourd’hui toutes les méthodes, selon le type de changement et qui doit y avoir accès.
J'espère que cet article vous aidera, mes collègues développeurs juniors et seniors, à prendre vos propres décisions sur la bonne façon d'ajouter du code en tant que plugin de fonction personnalisé dans WordPress. Faites-moi savoir dans les commentaires si j'ai raté quelque chose.