WordPress c'est bien, y a plein de plugins dans le repository qui font un peu tout ce qu'on peut imaginer. Le hic c'est que bien trop souvent, quand on en installe un, ben ça marche pas ou alors ça marchotte puis ça s'effondre un beau jour suite à l'installation d'un autre plugin ou encore on perd une partie des configuration suite à une mise à jour... Ceci arriverait beaucoup moins souvent, si certaines lignes de conduite étaient plus souvent suivies.
Voici donc quelques recommandations à suivre pour développer un plugin WordPress. C'en sont quelques-unes parmi d'autres, vos plugins ne seront pas parfaits juste parce que vous aurez suivi ces recommandations, bien entendu, mais ça évitera certains problèmes à vos utilisateurs...
Intégration de jQuery
jQuery permet d'effectuer de nombreuses opérations avec du code synthétique et surtout multi-navigateur, c'est bien, mangez-en. Par contre, dans les plugins WordPress c'est souvent intégré n'importe comment.
Déjà, WordPress inclut jQuery de base, donc nul besoin de le joindre au plugin.
Ensuite, inclure jQuery "à la main" via une balise script en dur, quand le plugin est tout seul, ça marche bien. Si un autre exploite directement jQuery sans extension, la page est plus lente parce que jQuery est chargé plusieurs fois mais ça marche aussi. Par contre dès qu'un plugin utilise des extensions de jQuery, là c'est moins cool : en effet, pour peu que ce plugin ne soit pas le dernier à être appelé, l'extension a toutes les chances d'être écrasée lors d'un autre chargement de jQuery... Et cela peut ne se produire que sur certaines pages selon les plugins, donc ça peut être difficile à détecter.
Heureusement, WordPress propose une fonction bien pratique qui permet d'intégrer des javascript sans écrire directement la balise script et surtout en indiquant des dépendances, ce qui évite les scripts inclus dans le mauvais ordre. Cette fonction s'appelle wp_enqueue_script
et est définie dans le fichier wp-include/functions.wp-scripts.php
.
En particulier, pour inclure jQuery il suffit d'appeler : wp_enqueue_script('jquery');
Et accessoirement, préférez un appel à l'objet jQuery
plutôt qu'un appel à $
dans votre code, car si un autre plugin inclut une bibliothèque qui utilise aussi le $
, ben... kaboum !
Ne pas gêner les mises à jour
Lorsqu'on met un plugin à jour, le dossier qui le contient est remplacé par la nouvelle version. En conséquence, si des fichiers ont été ajoutés ou modifiés dans ce dossier, ils seront écrasés par la mise à jour.
Cette pratique donc est à éviter absolument. Préférez une écriture en base de données, là aucun problème en cas de mise à jour :
- Si vous n'avez que quelques préférences à enregistrer, passez par le mécanisme des options.
- Si vous avez plus de données à enregistrer, utilisez l'objet global
$wpdb
.